Search

Clear filter
Article
Iryna Mykhailova · Aug 2, 2022

Data models in InterSystems IRIS

Before we start talking about databases and different data models that exist, first we'd better talk about what a database is and how to use it. A database is an organized collection of data stored and accessed electronically. It is used to store and retrieve structured, semi-structured, or raw data which is often related to a theme or activity. At the heart of every database lies at least one model used to describe its data. And depending on the model it is based on, a database may have slightly different characteristics and store different types of data. To write, retrieve, modify, sort, transform or print the information from the database, a software called Database Management System (DBMS) is used. The size, capacity, and performance of databases and their respective DBMS have increased by several orders of magnitude. It has been made possible by technological advances in various areas, such as processors, computer memory, computer storage, and computer networks. In general, the development of database technology can be divided into four generations based on the data models or structure: navigational, relational, object and post-relational. Unlike the first three generations, which are characterized by a specific data model, the fourth generation includes many different databases based on different models. They include column, graph, document, component, multidimensional, key-value, in-memory etc. All these databases are united by a single name NoSQL (No SQL or now it is more accurate to say Not only SQL). Moreover, now a new class appears, which is called NewSQL. These are modern relational databases that aim to provide the same scalable performance as NoSQL systems for online transaction processing workloads (read-write) while using SQL and maintaining ACID. Incidentally, among these fourth generation databases are those that support multiple data models mentioned above. They are called multi-model databases. A good example of this type of database is InterSystems IRIS. That is why I will use it to give examples of different types of models as they appear. The first generation databases used hierarchical or network models. At the heart of the former is a tree structure where each record has only one owner. You can see how this works using the example of InterSystems IRIS, because its main model is hierarchical and all data is stored in globals (which are B*-trees). You can read more about globals here. We can create this tree in IRIS : Set ^a("+7926X", "city") = "Moscow" Set ^a("+7926X", "city", "street") = "Req Square" Set ^a("+7926X", "age") = 25 Set ^a("+7916Y", "city") = "London" Set ^a("+7916Y", "city", "street") = "Baker Street" Set ^a("+7916Y", "age") = 36 And see it in the database: After Edgar F. Codd proposed his relational algebra and his theory of data storage, using relational principles, in 1969. After, the relational databases were created. The use of relations (tables), attributes (columns), tuples (rows), and, most importantly, transactions and ACID requirements made these databases very popular and they remain so now. For example, we have the schema: We can create and populate tables: And if we write the query: select p.ID, p.Name, a.Country, A.City from My.Person p left join My.Address a on p.Address = a.ID we will receive the answer: Despite the significant advantages of relational databases, with the spread of object languages, it became necessary to store object-oriented data in databases. That's why in the 1990s the first object-oriented and object-relational databases appeared. The latter were created on the basis of relational databases by adding add-ons to simulate the work with objects. The former were developed from scratch based on the recommendations of the OMG (Object Management Group) consortium and after ODMG (Object Data Management Group). The key ideas of these object-oriented databases are the following. The single data warehouse is accessible using: object definition language - schema definition, allows defining classes, their attributes, relations, and methods, object-query language - declarative, almost SQL-like language that allows getting objects from the database, object manipulation language - allows modification and saving data in the database, supports transactions and method calls. This model allows obtaining data from databases using object-oriented languages. If we take the same structure as in the previous example but in the object-oriented form, we will have the following classes: Class My.Person Extends %Persistent { Property Name As %Name; Property Address As My.Address; } Class My.Address Extends %Persistent { Property Country; Property City; } And we can create the objects using the object-oriented language: set address = ##class(My.Address).%New() set address.Country = "France" set address.City = "Marseille" do address.%Save() set person = ##class(My.Person).%New() set person.Address = address set person.Name = "Quouinaut, Martin" do person.%Save() Unfortunately, object databases did not succeed in competing with relational databases from their dominant position, and as a result, many ORMs appeared. In any case, with the spread of the Internet in the 2000s and the emergence of new requirements for data storage, other data models and DBMSs started to emerge. Two of these models that are used in IRIS are document and column models. Document-oriented databases are used to manage semi-structured data. This is data that does not follow a fixed structure and carries the structure within it. Each unit of information in such a database is a simple pair: a key and a specific document. This document is formatted usually in JSON and contains the information. Since the database does not require a certain schema, it is also possible to integrate different types of documents in the same warehouse. If we take the previous example again, we can have documents like these: { "Name":"Quouinaut, Martin", "Address":{ "Country":"France", "City":"Paris" } } { "Name":"Merlingue, Luke", "Address":{ "Country":"France", "City":"Nancy" }, "Age":26 } These two documents with a different number of fields are stored in the IRIS database without any problem. And the last example of a model that will be available in version 2022.2 is the column model. In this case, the DBMS stores the data tables per column and not per row. Column orientation allows more efficient access to data for querying a subset of columns (eliminating the need to read columns that are not relevant), and more options for data compression. Compression by column is also more efficient when the data in the column is similar. However, they are generally less efficient for inserting new data. You can create this table: Create Table My.Address ( city varchar(50), zip varchar(5), country varchar(15) ) WITH STORAGETYPE = COLUMNAR In this case, the class is like this: Spoiler Class My.Address Extends %Persistent [ ClassType = persistent, DdlAllowed, Final, Owner = {UnknownUser}, ProcedureBlock, SqlRowIdPrivate, SqlTableName = Address ] { Property city As %Library.String(COLLATION = "EXACT", MAXLEN = 50) [ SqlColumnNumber = 2 ]; Property zip As %Library.String(COLLATION = "EXACT", MAXLEN = 5) [ SqlColumnNumber = 3 ]; Property country As %Library.String(COLLATION = "EXACT", MAXLEN = 15) [ SqlColumnNumber = 4 ]; Parameter STORAGEDEFAULT = "columnar"; Parameter USEEXTENTSET = 1; /// Bitmap Extent Index auto-generated by DDL CREATE TABLE statement. Do not edit the SqlName of this index. Index DDLBEIndex [ Extent, SqlName = "%%DDLBEIndex", Type = bitmap ]; Storage Default { <Data name="_CDM_city"> <Attribute>city</Attribute> <ColumnarGlobal>^q3AW.DZLd.1.V1</ColumnarGlobal> <Structure>vector</Structure> </Data> <Data name="_CDM_country"> <Attribute>country</Attribute> <ColumnarGlobal>^q3AW.DZLd.1.V2</ColumnarGlobal> <Structure>vector</Structure> </Data> <Data name="_CDM_zip"> <Attribute>zip</Attribute> <ColumnarGlobal>^q3AW.DZLd.1.V3</ColumnarGlobal> <Structure>vector</Structure> </Data> <DataLocation>^q3AW.DZLd.1</DataLocation> <ExtentLocation>^q3AW.DZLd</ExtentLocation> <ExtentSize>3</ExtentSize> <IdFunction>sequence</IdFunction> <IdLocation>^q3AW.DZLd.1</IdLocation> <Index name="DDLBEIndex"> <Location>^q3AW.DZLd.2</Location> </Index> <Index name="IDKEY"> <Location>^q3AW.DZLd.1</Location> </Index> <IndexLocation>^q3AW.DZLd.I</IndexLocation> <Property name="%%ID"> <AverageFieldSize>3</AverageFieldSize> <Selectivity>1</Selectivity> </Property> <Property name="city"> <AverageFieldSize>7</AverageFieldSize> <Selectivity>33.3333%</Selectivity> </Property> <Property name="country"> <AverageFieldSize>7</AverageFieldSize> <Selectivity>33.3333%</Selectivity> </Property> <Property name="zip"> <AverageFieldSize>7</AverageFieldSize> <Selectivity>33.3333%</Selectivity> </Property> <SQLMap name="%%DDLBEIndex"> <BlockCount>-4</BlockCount> </SQLMap> <SQLMap name="IDKEY"> <BlockCount>-4</BlockCount> </SQLMap> <SQLMap name="_CDM_city"> <BlockCount>-4</BlockCount> </SQLMap> <SQLMap name="_CDM_country"> <BlockCount>-4</BlockCount> </SQLMap> <SQLMap name="_CDM_zip"> <BlockCount>-4</BlockCount> </SQLMap> <StreamLocation>^q3AW.DZLd.S</StreamLocation> <Type>%Storage.Persistent</Type> } } Then we insert the data: insert into My.Address values ('London', '47000', 'UK') insert into My.Address values ('Paris', '54000', 'France') insert into My.Address values ('Kyiv', '03000', 'Ukraine') In the globals we see: If we open the global with the city names, we will see : And if we write a query: select City from My.Address we receive data: In this case, the DBMS just reads a global to get the whole result. And it saves time and resources when reading. So, we have talked about 5 different data models supported by the InterSystems IRIS database. These are the hierarchical, relational, object, document, and column models. Hope you will find this article useful when trying to figure out which models are available. If you have any questions feel free to ask them in the comments. Very nice article Excellent article - thank you very much for taking the time to write this up!!! 💡 This article is considered as InterSystems Data Platform Best Practice. Thanks @Iryna.Mykhailova for this brilliant article ! Very clear and cleverly presented. NB : for column-oriented storage specified at the table level via the statement WITH STORAGETYPE = COLUMNAR , it should be noted that IRIS leaves itself free to choose for you the most commonly optimal storage (in row or in column), according to the types of data. Example : the following statement : CREATE TABLE a.addressV1 ( city varchar(50), zip varchar(15), country varchar(15) ) WITH STORAGETYPE = COLUMNAR Will not create any column-oriented storage, due to the risk of too disparate data, due to the number of characters allowed in each column (15 or 50) : Class a.addressV1 Extends %Persistent [ ClassType = persistent, DdlAllowed, Final, Owner = {_SYSTEM}, ProcedureBlock, SqlRowIdPrivate, SqlTableName = addressV1 ] { Property city As %Library.String(COLLATION = "EXACT", MAXLEN = 50, STORAGEDEFAULT = "ROW") [ SqlColumnNumber = 2 ]; Property zip As %Library.String(COLLATION = "EXACT", MAXLEN = 15, STORAGEDEFAULT = "ROW") [ SqlColumnNumber = 3 ]; Property country As %Library.String(COLLATION = "EXACT", MAXLEN = 15, STORAGEDEFAULT = "ROW") [ SqlColumnNumber = 4 ]; Parameter STORAGEDEFAULT = "columnar"; Parameter USEEXTENTSET = 1; while the example given in the article, retains a column (and only one) in column-oriented storage, since having only 5 characters allowed for the zip column. CREATE TABLE a.addressV2 ( city varchar(50), zip varchar(5), country varchar(15) ) WITH STORAGETYPE = COLUMNAR Class a.addressV2 Extends %Persistent [ ClassType = persistent, DdlAllowed, Final, Owner = {_SYSTEM}, ProcedureBlock, SqlRowIdPrivate, SqlTableName = addressV2 ] { Property city As %Library.String(COLLATION = "EXACT", MAXLEN = 50, STORAGEDEFAULT = "ROW") [ SqlColumnNumber = 2 ]; Property zip As %Library.String(COLLATION = "EXACT", MAXLEN = 5) [ SqlColumnNumber = 3 ]; Property country As %Library.String(COLLATION = "EXACT", MAXLEN = 15, STORAGEDEFAULT = "ROW") [ SqlColumnNumber = 4 ]; Parameter STORAGEDEFAULT = "columnar"; Parameter USEEXTENTSET = 1;
Announcement
Olga Zavrazhnova · Sep 13, 2022

InterSystems at HackMIT hackathon

Fall Hackathon Season is ready now! InterSystems will take part in HackMIT hackaton, a long-weekend hackaton organized by the MIT (Massachusetts Institute of Technology), where thousands of students come together to work on cool software and/or hardware projects. This year the HackMIT is in-person again, at the MIT campus, and will take place during the first weekend of October.This year the main tracks are Education, Sustainability, New Frontiers, and Entertainment.InterSystems challenge will be related to 1 or 2 of the main tracks and will be revealed on September 28.Stay tuned! HackMIT it's a great event! I hope this year could be bigger than the last one. Agree - last year's event was so much fun! And it was so successful, with the help of our superb mentors! :)This year they do it fully in person, I also hope it will big and awesome!
Article
Robert Cemper · Jun 6, 2022

Update - InterSystems Contest Statistics

The 24th contest was dominated by already well know winners+ 3 new winning contributors GROWTH: 8,6%Participation by my 5 regions: as: 1, br: 4, eu: 4+1new, us: 1+2new, ru: 5, total:18 With is distribution: Prizes USD Region Prz 8 9200 ru 37.4% 7 6200 eu 25.2% 7 4700 br 19.1% 2 3500 as 14.2% 5 1000 us 4.1% This results over all 24 contests into: Prizes USD Region Prz 95 72870 br 40.3% 48 51625 ru 28.6% 34 25900 eu 14.3% 15 19325 as 10.7% 14 11000 us 6.1% The Top 6 performing winners: And all winner's profiles over 24 contests: The related package is updated on OEX and ODS. GitHub Just curious, how do you count me, since I've moved to UAE, a few contests ago You are still counted with RU as at beginning of the contests.I didn't split your identity. I had rumors that you are contracted in UAR.
Announcement
Anastasia Dyubaylo · Sep 14, 2022

InterSystems Iberia Summit 2022

Hey Community, We're thrilled to invite you to the next "InterSystems Iberia Summit 2022", which will be held in-person once again. Registration is already open! Join us in this important event where we'll bring together InterSystems customers and partners and also employees and members of the Developer Community - to learn, inspire and share innovation challenges with each other: ➡️ InterSystems Iberia Summit 2022 🗓 November 16 – 17, 2022 📍Valencia. The Westin Valencia hotel At the InterSystems Iberia Summit, you will be able to share challenges and priorities. And you will learn how InterSystems technology is making the digital transformation a reality while allowing and boosting innovation. We'll publish the agenda with prominent speakers, topics, and workshops soon. And there will be great surprises at the Developer Community Corner. See you in Valencia! ➡️ Registration is open at: www.intersystems.com/es/iberia-summit-2022 worth to go! I wish I would go
Announcement
Anastasia Dyubaylo · Sep 26, 2022

InterSystems Developer Ecosystem Team

Hey Community, We're very pleased to present to you our brand new About Us pages! Please welcome: 📍 Our Team 📍 InterSystems Developer Ecosystem Overview So... Let's meet the Team! These are the people that make the magic happen ✨ Please feel free to contact us – we are here to make the Community a better place for developers! In addition, don't miss your chance to get to know all our regional teams: ES DC team PT DC team JP DC team CN DC team FR DC team And... 🤩 Let's meet our InterSystems Developer Ecosystem overview page! Here you can see a clear and simple overview of our related portals and resources where you can find lots of exciting and helpful stuff: How to find these pages? Go to the "About Us" section from the top menu: Hope you enjoy our brand new pages! Feel free to share your feedback in the comments ;)
Announcement
Anastasia Dyubaylo · Aug 3, 2021

InterSystems IRIS Analytics Contest

Hey Developers, Welcome to the next InterSystems online programming competition: 🏆 InterSystems IRIS Analytics Contest 🏆 Duration: August 23 - September 12, 2021 Total prize: $8,750 Landing page: https://contest.intersystems.com Prizes 1. Experts Nomination - a specially selected jury will determine winners: 🥇 1st place - $4,000 🥈 2nd place - $2,000 🥉 3rd place - $1,000 2. Community winners - applications that will receive the most votes in total: 🥇 1st place - $1,000 🥈 2nd place - $500 🥉 3rd place - $250 If several participants score the same amount of votes, they all are considered winners, and the money prize is shared among the winners. Who can participate? Any Developer Community member, except for InterSystems employees (ISC contractors allowed). Create an account! 👥 Developers can team up to create a collaborative application. Allowed from 2 to 5 developers in one team. Do not forget to highlight your team members in the README of your application – DC user profiles. Contest Period 🛠 August 23 - September 5: Application development and registration phase. ✅ September 6 - 12: Voting period. Note: Developers can improve their apps throughout the entire registration and voting period. The topic 💡 Analytics solutions using InterSystems IRIS 💡 Use one or more InterSystems IRIS analytics capabilities such as: Adaptive Analytics (AtScale) InterSystems Reports (Logi) InterSystems BI (DeepSee) InterSystems NLP (iKnow) to create a simple compelling, and clear visualization and/or story. Here are the requirements: Accepted applications: new to Open Exchange apps or existing ones, but with a significant improvement. Our team will review all applications before approving them for the contest. The application should work either on IRIS Community Edition or IRIS for Health Community Edition (except Adaptive Analytics and InterSystems Reports). The application should be Open Source and published on GitHub. The README file to the application should be in English, contain the installation steps, and contain either the video demo or/and a description of how the application works. Helpful resources 1. Sample applications and instructions: 1.1. Adaptive Analytics: Adaptive Analytics in Action (video) 1.2 InterSystems Reports: A look at InterSystems Reports (video) InterSystems Reports Resource guide Running InterSystems Reports in containers IRIS reports server demo (OEX) 1.3 IRIS BI examples: IRIS Analytics Template Samples BI Covid19 analytics Analyze This Game of Throne Analytics Pivot Subscriptions Error Globals Analytics Creating InterSystems IRIS BI Solutions Using Docker & VSCode (video) The Freedom of Visualization Choice: InterSystems BI (video) InterSystems BI(DeepSee) Overview (online course) InterSystems BI(DeepSee) Analyzer Basics (online course) 1.4 InterSystems NLP (iKnow): iKnow Source Code Samples Aviation Set Analysis iKnow First Look (online course) 2. Sample data: Hole Foods database for IRIS BI (installed with SamplesBI package) Adventure Works, zip Synthea 3. Tools to import data into IRIS: CSVGEN and CSVGENUI S3 External Table 4. For beginners with IRIS Build a Server-Side Application with InterSystems IRIS Learning Path for beginners 5. How to submit your app to the contest: How to publish an application on Open Exchange How to submit an application for the contest Judgment Voting rules will be announced soon. Stay tuned! So! We're waiting for YOUR great project – join our coding marathon to win! ❗️ Please check out the Official Contest Terms here.❗️ Added an article on InterSystems Reports in containers and the related demo Added new section to helpful resources: ➡️ For beginners with IRIS Build a Server-Side Application with InterSystems IRIS Learning Path for beginners - thanks to @Yuri.Gomes for such a useful post! Thanks! Hey Developers, Watch the new video on InterSystems Developers YouTube: ⏯ Adaptive Analytics in InterSystems IRIS Hi Community, See a demonstration of InterSystems IRIS Adaptive Analytics and get a detailed description of this new offering for analytics end-users: ⏯ Demonstration: Adaptive Analytics in InterSystems IRIS Hey Developers, The start date of the Analytics contest has been postponed! Please welcome the new contest period: 🛠 August 23 - September 5: Application development and registration phase. ✅ September 6 - 12: Voting period. Stay tuned! Hi Community! The registration period will be soon! We are waiting for your awesome solutions! Hey Community! Only 4 days left to the start of the registration period! You can use one or more InterSystems IRIS analytics capabilities such as: Adaptive Analytics (AtScale) InterSystems Reports (Logi) InterSystems BI (DeepSee) InterSystems NLP (iKnow) to create a simple compelling, and clear visualization and/or story. Hey DC members! Don't miss the upcoming InterSystems Analytics Contest Kick-off Webinar! Date & Time: Monday, August 23 — 10:00 AM EDT Speakers: 🗣 @Carmen Logue, InterSystems Product Manager - Analytics and AI🗣 @Evgeny Shvarov, InterSystems Developer Ecosystem Manager Developers! Tomorrow is starting the registration phase of InterSystems IRIS Analytics Contest! Don't forget about the upcoming InterSystems Analytics Contest Kick-off Webinar on Monday, August 23 — 10:00 AM EDT. We are waiting for you! Hi, Devs! The registration period has already begun! Please, upload your applications! We are waiting for your new and marvelous ideas!🤩 Hi Community! The recording of this webinar is available on InterSystems Developers YouTube! Please welcome: ⏯ InterSystems Analytics Contest Kick-Off Webinar Big applause to our speakers! 👏🏼 Dear Developers! Please use technology bonuses to collect more votes and get closer to victory. 🥳 Happy coding!✌ Hi Community! The registration period is continuing! Please, check out our Official Contest Terms here. Have a great day!😄 Developers! We are waiting for your great apps! Don't forget to participate! Dear developers! 🛠 The registration period ends on September 5th. Hurry up to upload your apps! Hey Developers! Today is the last day of the registration period! Upload your applications and solutions and take a part in the competition! Good luck to everybody!😉 Community! Registration time will end soon! And here 4 applications that are already in the competition: AlertDashboard by@Zhuang.Pan Analytics OKR by @Yuri.Gomes iris-analytics-datastudio by @Dmitry.Maslennikov promjet-stats by @Evgeniy.Potapov Who is gonna be next?
Announcement
Evgeny Shvarov · Jul 30, 2021

InterSystems Partner Directory is Available!

Hey Developers, We are excited to announce the launch of the InterSystems Partner Directory! This is the place to go to find commercial services and solutions built on InterSystems products. Why InterSystems Partner Directory? Every day, we receive questions like these: Are there any ERP solutions built on InterSystems technology? I live in Sweden—how can I get trained with InterSystems? Does InterSystems have any implementation partners in France? Whether our customers look for help building a solution, for a trusted consulting source, for assistance with an implementation project, or for some extra training, they can use the Partner Directory to establish a relationship with the company that’s right for them. If your company is an InterSystems partner that provides: Implementation, consulting, or training services related to InterSystems technology, and/or solutions built with or for InterSystems products, We welcome you to publish your listing and join the Partner Directory. Check it out and share it with your colleagues! You can easily find InterSystems Partner Directory site in the top bar:
Announcement
Anastasia Dyubaylo · Sep 29, 2021

InterSystems Interoperability Contest 2021

Hey Developers, Welcome to the next InterSystems online programming competition: 🏆 InterSystems Interoperability Contest 🏆 Duration: October 04-24, 2021 Our prize pool increased to $9,450! Prizes 1. Experts Nomination - a specially selected jury will determine winners: 🥇 1st place - $4,000 🥈 2nd place - $2,000 🥉 3rd place - $1,000 🌟 NEW PRIZES: 4-10th places - $100 2. Community winners - applications that will receive the most votes in total: 🥇 1st place - $1,000 🥈 2nd place - $500 🥉 3rd place - $250 If several participants score the same amount of votes, they all are considered winners, and the money prize is shared among the winners. Who can participate? Any Developer Community member, except for InterSystems employees (ISC contractors allowed). Create an account! 👥 Developers can team up to create a collaborative application. Allowed from 2 to 5 developers in one team. Do not forget to highlight your team members in the README of your application – DC user profiles. Contest Period 🛠 October 04-17: Application development and registration phase. ✅ October 18 - 24: Voting period. Note: Developers can improve their apps throughout the entire registration and voting period. The topic 💡 Interoperability solutions for InterSystems IRIS and IRIS for Health 💡 Develop an interoperability solution or a solution that helps to develop or/and maintain Interoperability solutions using InterSystems IRIS or InterSystems IRIS for Health. Requirements: Accepted applications: new to Open Exchange apps or existing ones, but with a significant improvement. Our team will review all applications before approving them for the contest. The application should work either on IRIS Community Edition or IRIS for Health Community Edition or IRIS Advanced Analytics Community Edition. The application should be Open Source and published on GitHub. The README file to the application should be in English, contain the installation steps, and contain either the video demo or/and a description of how the application works. Helpful resources 1. For beginners with InterSystems IRIS: Build a Server-Side Application with InterSystems IRIS Learning Path for beginners 2. Sample applications: Ensemble/Interoperability Formation IRIS-Interoperability-template ETL-Interoperability-Adapter InterSystems IRIS for Health ENSDEMO HL7 and SMS Interoperability Demo Twitter Sentiment Analysis with IRIS Healthcare HL7 XML RabbitMQ adapter PEX demo 3. Online courses & videos: Interoperability for Business Interoperability QuickStart Interoperability Resource Guide - 2019 Intelligent Interoperability Interoperability for Health Overview 4. How to submit your app to the contest: How to publish an application on Open Exchange How to submit an application for the contest Judgment Voting rules will be announced soon. Stay tuned! So! Ready. Set. Code. Please join our exciting coding marathon! ❗️ Please check out the Official Contest Terms here.❗️ Hey Devs! Don't miss the upcoming InterSystems Interoperability Contest Kick-off Webinar dedicated to the Interoperability Contest! Date & Time: Monday, October 4 — 12:00 AM EDT We are waiting for you, and good luck to everybody! Hey Community! We are waiting for your participation in the Interoperability Contest! Here is the landing page: https://contest.intersystems.com/ Dear Participants! Don't forget about technology bonuses to help you get closer to winning! 🎉 Please follow this post prepared by @Evgeny.Shvarov Happy coding!✌ Hey Developers, The recording of the Interoperability Contest Kick-off Webinar is available on InterSystems Developers YouTube! Please welcome: ⏯ InterSystems Interoperability Contest Kick-off Webinar Hi Community! The registration period is continuing! Please, check out our Official Contest Terms here. Have a great day!😄 Hello Developers! The first week of the registration period has ended, so only one week left! So, upload your applications and participate! For now, @Aleksandr.Kalinin6636 has added an application! It's called ESKLP, go check it out! Good luck to everybody, and easy coding! Developers! Hooray, we have another participant @Robert.Cemper1003 and his app CSV to M$-OFX. 🔥 Who will be next?👀 Developers! Today is the last day of the registration period! So, don't waste your time and upload your awesome applications! And here new participants to our contests, check out the apps: iris-crypto-tracker by @Evgeniy.Potapov LabResultsVerification-hl7 by @Muhammad.Waseem appmsw-telealerts by @MikhailenkoSergey
Announcement
Anastasia Dyubaylo · Nov 23, 2020

InterSystems Interoperability Contest: WINNERS!

Hey Developers, The InterSystems Interoperability Contest is over. Thank you all for participating in our exciting coding marathon! And now it's time to announce the winners! A storm of applause goes to these developers and their applications: 🏆 Experts Nomination - winners were determined by a specially selected jury: 🥇 1st place and $2,000 go to the Open API Client Gen project by @Lorenzo.Scalese 🥈 2nd place and $1,000 go to the OCR Service project by @Yuri.Gomes 🥉 3rd place and $250 go to the IRIS Interoperability Message Viewer project by @Henrique 🥉 3rd place and $250 go to the interoperability-integratedml-adapter project by @José.Pereira 🏆 Community Nomination - an application that received the most votes in total: 🥇 1st place and $1,000 go to the OCR Service project by @Yuri.Gomes 🥈 2nd place and $500 go to the IRIS Interoperability Message Viewer project by @Henrique 🥉 3rd place and $250 go to the Open API Client Gen project by @Lorenzo.Scalese Congratulations to all the participants! Thank you for your attention to the contest and the efforts you pay in this exciting coding competition! And what's next? We've already announced the next competition for InterSystems developers! Please join the InterSystems Analytics Contest kicking off December 7th! Stay tuned for more details! I'm really very happy to be the community winner and the 2nd in the experts votes. I participated in 4 past contests, and now, in my preferred topic, interoperability, I won. Thanks all DC team to organize, support and do the better IT contest in the market. The iris contests help to the community to knows better the IRIS features and how to use it to solve important problems. Many fantastic apps were created and enrich the OEX catalog with samples to the intersystems clients. These contest samples and apps also helped IRIS PMers to see how the market uses the IRIS features and got more collaboration with the advanced IRIS users and developers. I see only positive aspects in the IRIS contests. I hope the contests to be continue in 2021! And I see you in the december contest, about analytics. I know will be my app already. It will be great! Thanks again! Thanks to the each vote that I got. You are my fuel to do more articles, apps and contribute to the InterSystems and community efforts. Big congrats, Yuri! And thank you for such a great contribution! What an exciting contest! So happy to win in experts votes and third in community votes. Congrats to all participants for your great apps. Thanks to experts and community for your support! Also special thanks to the OEX Team and all members behind the scene. Congrats to the winners and all the participants! It was very hard to choose the best project in the contest, we had a really amazing set of applications! Happy to see all the participants on Friday in the celebration meetup!
Article
Eduard Lebedyuk · Jun 3, 2021

Running InterSystems Reports in containers

**IMPORTANT NOTE** InterSystems no longer provides a separate InterSystems Reports Server container. To run containerized InterSystems Reports Server, use Logi Reports Server container and your InterSystems Reports Server license. [Documentation](https://devnet.logianalytics.com/hc/en-us/articles/5741448163607-Using-and-Upgrading-Logi-Report-Server-on-Docker). > InterSystems Reports is powered by Logi Report (formerly named JReport), a product of Logi Analytics. InterSystems Reports is supported by InterSystems IRIS and InterSystems IRIS for Health. It provides a robust modern reporting solution that includes: > > - Embedded operational reporting which can be customized by both report developers and end users. > - Pixel-perfect formatting that lets you develop highly specific form grids or other special layout elements for invoices, documents, and forms. > - Banded layouts that provide structure for aggregated and detailed data. > - Exact positioning of headers, footers, aggregations, detailed data, images, and sub-reports. > - A variety of page report types. > - Large-scale dynamic report scheduling and distribution including export to PDF, XLS, HTML, XML, and other file formats, printing, and archiving for regulatory compliance. > > InterSystems Reports consists of: > > - A report designer, which provides Design and Preview Tabs that enable report developers to create and preview reports with live data. > - A report server which provides end users browser-based access to run, schedule, filter, and modify reports. From [InterSystems documentation](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GISR_intro). This article focuses on the Server part of InterSystems Reports and provides a guide on running Report Server in containers while persisting all the data. # Prerequisites Before we start, this software must be available for the InterSystems Reports to work: - [Docker](https://docs.docker.com/engine/install/) - while InterSystems Reports can work *without* Docker, this article focuses on Dockerised setup. - (Optional) [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) - to clone this repo, otherwise [download it as an archive](https://github.com/eduard93/reports/archive/refs/heads/master.zip). - (Optional) [InterSystems Reports Designer](https://wrc.intersystems.com/) - to create new reports if desired. Additionally, you'll need: - Login on [containers.intersystems.com](https://containers.intersystems.com) Docker registry - InterSystems Reports License (contact InterSystems for it) # Configuration Before we start, here's what we're going to do: - First, we are starting Reports and IRIS in setup mode to setup IRIS as a database (not DataSource!) for Reports. - After that, we are configuring Reports and persisting this configuration on the host. - Finally, we are running Reports with persisted data. # First start Let's go. Note that all steps here - 1-8 use `docker-compose_setup.yml` as a docker-compose configuration file. All additional docker-compose commands during these steps must be run as `docker-compose -f docker-compose_setup.yml`. 1. Clone this repo: `git clone https://github.com/eduard93/reports.git` or download an [archive](https://github.com/eduard93/reports/archive/refs/heads/master.zip). 2. Edit `config.properties` and specify your InterSystems Reports Server license information (User and Key). If you don't have them - contact InterSystems. There are many other properties described in the [documentation](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GISR_server). Note that IRIS, in that case, refers to the database for Reports and not the data source for reports (which comes later). 3. Start InterSystems Reports Server with initialization: `docker-compose -f docker-compose_setup.yml up -d` 4. Wait for InterSystems Reports Server to start (check with `docker-compose -f docker-compose_setup.yml logs reports`). It can take 5-10 minutes. Reports Server is ready for work when logs show: `reports_1 | Logi Report Server is ready for service.` 5. Open [Reports Server](http://localhost:8888). (User/pass: `admin`/`admin`). In a case, it shows an expired window enter the same license info again. It should look like this: ![image](https://user-images.githubusercontent.com/5127457/120627117-04bded00-c46c-11eb-99ad-5bc89e3bfb76.png) # Persisting configuration Now that Reports is running, we need to adjust configuration a little and persist it on a host (note that InterSystems IRIS part of a configuration is persisted using [Durable %SYS](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=ADOCK#ADOCK_iris_durable). 6. Check `Enable Resources from Real Paths` option in the `server console` > `Administration` > `Configuration` > `Advanced` page. [Docs](https://devnet.logianalytics.com/hc/en-us/articles/1500009750141-Getting-and-Using-Resources-from-a-Real-Path). It would allow us to publish reports as simple as copying them into the `reports` folder in the repository. ![image](https://user-images.githubusercontent.com/5127457/120627668-90377e00-c46c-11eb-87c4-9745665c1857.png) 7. Copy persistent storage files to host ([docs](https://hub.docker.com/r/logianalytics/logireport-server)): ``` docker cp reports_reports_1:/opt/LogiReport/Server/bin . docker cp reports_reports_1:/opt/LogiReport/Server/derby . docker cp reports_reports_1:/opt/LogiReport/Server/font . docker cp reports_reports_1:/opt/LogiReport/Server/history . docker cp reports_reports_1:/opt/LogiReport/Server/style . ``` 8. Shutdown InterSystems Reports Server: `docker-compose -f docker-compose_setup.yml down` # Second start Now we're ready to start Reports with persisted data storage - this is how it would run in production. 9. Start InterSystems Reports Server without initialization: `docker-compose up -d` 10. Create a new folder resource in `Public Reports` with Real Path: `/reports`. [Docs](https://devnet.logianalytics.com/hc/en-us/articles/1500009750141-Getting-and-Using-Resources-from-a-Real-Path). To do that open `Public Reports` and select `Publish` > `From Server Machine`: ![image](https://user-images.githubusercontent.com/5127457/120638494-da266100-c478-11eb-80a0-b89ba4e345db.png) Create a new folder pointing to `/reports`: ![image](https://user-images.githubusercontent.com/5127457/120638907-6fc1f080-c479-11eb-965d-8346d603ada2.png) ![image](https://user-images.githubusercontent.com/5127457/120638753-34bfbd00-c479-11eb-893f-0980ebe4f569.png) It should contain a catalog (which defines a connection to IRIS) and two reports (`reportset1` and `reportset2`). Run them (use `Run` button to see it in a browser and `Advanced Run` to choose between HTML, PDF, Excel, Text, RTF, XML, and PostScript formats). Here's what reports look like: ![image](https://user-images.githubusercontent.com/5127457/120632926-333ec680-c472-11eb-8367-c1769fc344ce.png) ![image](https://user-images.githubusercontent.com/5127457/120632973-42257900-c472-11eb-870f-9af4f77a5161.png) As you can see, Reports supports Unicode out of the box. In this example, I'm using the same IRIS as a data source, but in general, it can be any other IRIS instance - as defined in a catalog. This demo uses the `HoleFoods` dataset (installed with `zpm "install samples-bi"`). To add new connections, create a new catalog in Designer. After that, create new reports and export everything in a new subfolder in a `reports` folder. Of course Server container must have network access to any data source IRIS instance. That's it! Now, if you want to stop Reports, execute: `docker-compose stop`. And to start Reports again execute: `docker-compose up -d`. Note that all reports are still available. # Debugging All logs are stored in `/opt/LogiReport/Server/logs` folder. In a case of errors, add it to volumes, restart Reports and reproduce the error. Documentation describes how to adjust [log levels](https://documentation.logianalytics.com/rsg17u1/content/html/config/config_log.htm?Highlight=logging). If Reports doesn't exactly get to the UI adjust `LogConfig.properties` file located in the `bin` folder: ``` logger.Engine.level = TRIVIAL logger.DHTML.level = TRIVIAL logger.Designer.level = TRIVIAL logger.Event.level = TRIVIAL logger.Error.level = TRIVIAL logger.Access.level = TRIVIAL logger.Manage.level = TRIVIAL logger.Debug.level = TRIVIAL logger.Performance.level = TRIVIAL logger.Dump.level = TRIVIAL ``` # Embedding and APIs To embed reports in your web application, use [Embedded API](https://documentation.logianalytics.com/logiinfov12/content/embedded-reports-api.htm). Other [available APIs](https://documentation.logianalytics.com/logireportserverguidev17/content/html/api/wkapi_srv.htm). # Summary InterSystems Reports provides a robust modern reporting solution with embedded operational reporting. InterSystems Reports Server provides end users browser-based access to run, schedule, filter, and modify reports. InterSystems Reports Server can be efficiently run in a Docker environment. # Links - [Repository](https://github.com/eduard93/reports) - [Documentation](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GISR_server) - [Logging](https://documentation.logianalytics.com/rsg17u1/content/html/config/config_log.htm?Highlight=logging) 💡 This article is considered as InterSystems Data Platform Best Practice. Thank you for taking the time to make such a clear tutorial!
Announcement
Anastasia Dyubaylo · Jul 12, 2021

InterSystems Tech Article Contest

Hey Developers, Are you ready for the new challenge? We're pleased to announce the first InterSystems technical article writing competition: 🏆 InterSystems Tech Article Contest 🏆 Write an article on any topic related to InterSystems technology from July 15 to August 15 August 22 – extended! Prizes for everyone: Everyone who publishes an article on DC during this period will receive a special prize pack! Main Prize: Apple iPad Join our new contest and your content will be seen by over 55K monthly readers! Details below. Prizes 1. Everyone is a winner in InterSystems Tech Article Contest! Any user who writes an article during the competition period will receive special prizes: 🎁 unique Developer Community Hoody 🎁 InterSystems sticker 2. Expert Awards – articles will be judged by InterSystems experts: 🥇 1st place: Apple iPad 128GB 🥈 2nd place: Amazon Kindle 8G Paperwhite 🥉 3rd place: Nike Utility Speed Backpack Or as an alternative: Raspberry Pi 4 8GB with InterSystems IRIS Community Edition ARM installed 3. Developer Community Award – article with the most likes. The winner will have an option to choose one from the following prizes: 🎁 Nike Utility Speed Backpack 🎁 Amazon Kindle 8G Paperwhite 🎁 Raspberry Pi 4 8GB with InterSystems IRIS Community Edition ARM installed Who can participate? Any Developer Community member, except for InterSystems employees. Create an account! Contest Period 📝 July 15 - August 22: Publication of articles on the Community and voting time. Publish an article(s) throughout this period. DC members can vote for published articles with Likes – votes in the Community award. Note: The sooner you publish an article(s), the more time you will have to collect Likes. 🎉 August 23: Winners announcement. What are the requirements? ❗️ Any article written during the contest period and satisfying the requirements below will automatically enter the competition: The article must be related to InterSystems technology The article must be in English The article must be 100% new (it can be a continuation of an existing article) The article should not be plagiarized or translated (translations of your own DC articles from another language are allowed) Article size: >1,000 characters Team size: individual (multiple entries from the same author are allowed) What to write about? ❗️ You can choose any tech topic related to InterSystems technology. Here're some possible fields for choosing the article topic. These are just examples, you have the liberty to choose anything you want. # Topic Details 1 Embedded Python Introduction Embedded Python is an exciting new feature of InterSystems IRIS allowing developers to write methods, SQL procedures and more in Python. 2 Embedded Python from Interoperability Explore how Embedded Python can be leveraged from an Interoperability production. 3 Embedded Python: Translating by Language Constructs While we aim for seamless Embedded Python integration there are some tips & tricks to smooth things over. Underscore methods, dictionaries, lists and others. What are the best ways of calling Python features from ObjectScript? 4 Intro to InterSystems Reports Designer Continuation of this article. This article should cover: Catalog creation Creation of the basic report types, namely Chart (bar, pie, line, gauge, heatmap, ...) Table (summary and detailed) Crosstab Publishing Reports to Reports Server Creating a schedule A good tutorial to start with: Getting Started with InterSystems Reports 5 Calling Reports from Interoperability/IRIS An article describing how to execute (and get) InterSystems Reports Report from IRIS on from Interoperability Production. 6 Map Reports with InterSystems An article describing how to build InterSystems Reports Report with geospatial data. HoleFoods dataset contains locations for transactions which you can use. 7 How to do CI/CD with InterSystems IRIS – 8 Change Data Capture with Kafka Connect An example that shows how to set up Kafka Connect and export&import SQL data via the Kafal Connect JDBC connector. 9 Applying analytics / ML to the SQL Statement Index – 10 My favourite maintenance tasks, automated – 11 Leveraging the Audit database – 12 The three steps to set up GitHub Actions that make your app invincible – 13 OAuth2 authorization in IRIS instance – 14 Setup mirroring on K8s – 15 Using %MDX and %KPI instead of Subject Area in IRIS Analytics – 16 Trying External Language Gateways / compare to the gateways of old Example 17 Streaming events to Kafka from IAM – 18 IntegratedML walkthrough – 19 Exporting requests to Excel using Python – 20 Integrating cloud services with productions e.g. MS Azure Cognitive Services or Amazon Rekognition. 21 Working with IKO – 22 IKO IRIS on AWS Kubernetes with Hugepages – 23 Incorporating backups with IKO – 24 IKO – Create a cluster with compute nodes, SAM, and no sharding Include the CPF file to set up our best practices. 25 Data Science shared workgroup setup with ECP There is a data server and each data scientist has a compute node on their desktop. Show the data is available when disconnected and syncs when you re-connec. 26 Article discussing storage options for cloud deployments (performance difference between local storage, block storage, etc) and trade-offs (you might not need mirrors if using block storage, etc.) – 27 Building IRIS images with Docker Build Mounts Details 28 InterSystems IRIS CUDA image There's a way to use GPUs/CUDA from inside the container. Describe how to build an InterSystems IRIS image with CUDA support. Note: Articles on the same topic from different authors are allowed. Feel free to submit your topic ideas in the comments to this post. So, We're waiting for your great articles! Good luck and let the power of Pulitzer be with you! ✨ Article idea: Building IRIS images with Docker Build Mounts From the docs on Docker Build Mounts: RUN --mount allows you to create mounts that process running as part of the build can access. This can be used to bind files from other part of the build without copying, accessing build secrets or ssh-agent sockets, or creating cache locations to speed up your build. This is a recent Docker feature allowing users to build compact images (since we no longer need to COPY everything inside). Try it out and write an article about it? Article idea: InterSystems IRIS CUDA image There's a way to use GPUs/CUDA from inside the container. Describe how to build an InterSystems IRIS image with CUDA support. Hey Developers,Each article will bring you points on Global Masters, and you also could earn some of related badges:✅ Badges for Number of Articles: 1st / 5 / 10 / 25 / 50 articles✅ Badges for Number of Votes (votes for all your DC posts in sum): 50 / 100 / 500 / 1000 votes✅ Badges for Number of Views: 750 / 2,000 / 5,000 / 15,000 viewsCheck these badges and how much points they can bring in this article. Hey DC members, The InterSystems Tech Article Contest started today! 🤩🤩 Can't wait for your great articles! 📍 Start here: https://community.intersystems.com/contests/1 Hey Community, We've implemented a new feature in our DC editor so that you can easily track the amount of content in your article! Please welcome: Word & character counter When you type any text on the post creation page, DC Editor reads all words and characters and automatically displays them in the lower right corner. p.s. Counter works only for WYSIWYG format. Enjoy! ✨ Hi Community! If you do not have a topic to write an article on, you can view the topics that we offer above in this post. Good luck and stay tuned! Hey Community! We are waiting for your great articles! Participate and win Apple iPad 128GB for the first place! Hey DC members, The InterSystems Tech Article Contest сontinues!🚀 We look forward to your articles! Hey DC members, 5 new articles are already in the game! 🤩 Visit our contest page to support the participants with Likes = votes in the Community Award! 📍 https://community.intersystems.com/contests/1 Wow!! 👏👏I love this contest!! 😁 Yeah! A lot of new things to read 😊👍🏼 Hey Developers! What great articles have already been made!🤩🤩 Who will be next? Hey Community, Another alternative prize was added to the Community Award: 🎁 Raspberry Pi 4 8GB with InterSystems IRIS Community Edition ARM installed Now the winner will have an option to choose one of 3 prizes! Hey Devs! Don't forget, that DC members can vote for published articles with Likes – votes in the Community award. So, the earlier you will write an article, the chance to get more likes is higher!🤩 Good luck and stay tuned! Hi, May I translate my article once I've publish in english? Kurro, translations of your own DC articles are also allowed, go ahead! ;) Hi Community! Only two weeks left to the end InterSystems Tech Article Contest! Don't be shy, publish your article and win the prize! Hey Devs! Now 12 incredible articles are in the game!🤩 Visit our contest page to support the participants with Likes = votes in the Community Award! 📍 https://community.intersystems.com/contests/1 Hey DC members, A new article by @Oliver.Wilms ! Check it out! Hi Comunity! Almost one week left to the end of InterSystems Tech Article Contest! Good luck and stay tuned! The prizes are waiting for you! Hi, Devs! 2 more articles are already in the game!😻 Only 6 days left to the end of the publication period! Good luck to everybody!🤞💪 Hey Community, ❗️ We decided to extend the contest period until 22 August! One more week to write an article and join our competition – don't miss your chance to win 😉 P.s. And don't forget about prizes for everyone who enters the contest ;) ______________ Yours, Anastasia Hey Community!2 more articles are being added to the contest!Interoperability with IRIS and Pharmacy Robotics by @Nigel.Salm5021 launch with the intelligent eco-system in InterSystems by @crys.su9670 Go check it out! And good luck to everybody! Hey Developers! One more participant has joined the contest with some awesome articles! Deploy to production module to convert query results to xlsx file based on python openpyxl library by @MikhailenkoSergey Hi Developers! How many awesome articles are already been made! Go check them out: https://community.intersystems.com/contests/1 Hi DC Members! A new article is added to the competition! Why I love ObjectScript and why I think I might love Python More by @Nigel.Salm5021 Take a look at it Hey Community! One more new article has been added to the game! GitHub Codespaces with IRIS by @Dmitry.Maslennikov Only one day left to the end of the contest! I have just published my third and final Tech Article. This article describes how you can develop a single Interface Code Base and then using Package and Global Mappings generate a multitude of Interfaces that either have date PUSHED into them or PULL data from a Source Application or Database and in my example, transform that data into either HL7 or FHIR messages. I then use HTTP to send the message to a Target Server. [12:15 AM] I have attached the article as a PDF which might make it a bit easier to read and I will be releasing the actual software on OEX in the near future. Hey Developers! 3 more articles have been added to the competition! Transferring Files via REST to Store in a Property, Part 3 by @Iryna.Mykhailova How to develop an interoperability solution in one code base and then use it to generate many individual interfaces by @Nigel.Salm5021 My opinion: IRIS Mirror not as reliable as expected in AWS Elastic Container Service by @Oliver.Wilms Last call Developers! Only 8 hours left to the end of the contest! great! thanks, Nigel
Announcement
Evgeny Shvarov · Aug 15, 2021

InterSystems Partner Ecosystem Services

Hi Community and InterSystems Partners! We are glad to share great news for Intersystems Partner Directory Members:here is a list of services you can use to become more visible within our InterSystems Community. As a partner, you may order one of the services every six months free of charge: $1,000 Google AdWords Campaign VoucherWe will set up and launch the campaign for you Promotion within the Developer EcosystemWe put a banner on the website with 50K+ monthly InterSystems related audience Webinar supported by InterSystemsWe will take care of all the organizational efforts. You just come and tell about your solution and get real-time feedback Introduce Your Company's Tag on Developer CommunityUse your own tag to share news about your company Your Video on InterSystems Developers YouTube channelMake a video about your application and how it works with InterSystems solutions, and we will post it on our YouTube channel with 186,000 subscribers Publish a Job DescriptionSubmit a job description, and it will be published on Developer Community forums with 50K+ monthly audience. And more services are coming soon! Also, if you have something in mind, you can share in the comments what you would like to see as a service provided for partners by Intersystems Partner Directory. How to request: 1. Sign in to Partner Directory and make sure you have the Company's profile. If not - here is the video on how to list it 2. Open your Partner Directory account 3. Navigate to the tab Ecosystem Services 4. Hit the "Request" button in front of one of those you want to get Waiting for your requests! Hope the services are helpful! And looking forward to your feedback on the usage of InterSystems Partner Ecosystem services!
Announcement
Guillaume Rongier · Sep 1, 2021

French Stream On InterSystems Technologies

All French-speaking developers are friendly invited to follow a stream in the form of a journal. Every first Thursday of the month at 12:00 (Paris time), we organize a 30-45 minutes stream on Youtube with the following format : News on technologies around InterSystems. A section called "Did you know it?" (tips and tricks on IRIS) A "dossier", where we develop a subject (example: How language gateway works). And we end the program with an Interview of an french developer Previous episodes : Stream #0 : https://www.youtube.com/watch?v=ah0G7mNqa4E News 2020.4 in GA https://docs.intersystems.com/irisforhealthlatest/csp/docbook/Doc.View.cls?KEY=HXIHRN_new20204 IAM deck https://docs.konghq.com/deck/ Le concours Outils InterSystems https://community.intersystems.com/post/intersystems-programming-contest-developer-tools Apps : https://community.intersystems.com/post/announcing-server-manager-20-visual-studio-code https://openexchange.intersystems.com/package/Config-API https://community.intersystems.com/post/environment-setup-config-api https://openexchange.intersystems.com/package/i2b2-on-iris-1 https://community.intersystems.com/post/containerising-netjava-gateways-or-kafka-integration-demo News https://community.intersystems.com/post/install-zpm-one-line https://community.intersystems.com/post/ssh-iris-container https://community.intersystems.com/post/intersystems-iris-multistage-builds Did you know it? Performance differences between methods/routines/labels https://gist.github.com/grongierisc/85dccbc573e2ad48cea2809ac80fc062 Dossier IAM Demo https://github.com/grongierisc/iam-training/tree/training Interview Lorenzo Scalese Stream #1 : https://www.youtube.com/watch?v=E87OYwO7w60 News https://community.intersystems.com/post/global-storage-everything-you-wanted-know-and-more https://community.intersystems.com/post/separate-list-results-persistent-classes-sql#comment-155671 https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GCRN_new20204 New layout https://community.intersystems.com/post/pubsub-publish-subscribe-messages https://community.intersystems.com/post/introducing-intersystems-container-registry https://community.intersystems.com/post/mirroring-ensemble-service-information https://community.intersystems.com/post/should-we-store-external-files-intersystems-stream-or-windows-folders https://community.intersystems.com/post/intersystems-fhir-accelerator-programming-contest https://community.intersystems.com/post/new-video-embedded-python-intersystems-iris-sneak-peek https://community.intersystems.com/post/java-business-host-now-retired Did you know it? List vs Array Dossier PubSub https://github.com/grongierisc/iris-pubsub-cdc Interview Matthieu Laurent Stream #2 : https://www.youtube.com/watch?v=pszDXnzMi48 News https://community.intersystems.com/post/intersystems-iris-iris-health-healthshare-health-connect-20211-are-now-generally-available https://community.intersystems.com/post/ensemble-interoperability-training-course https://community.intersystems.com/post/looking-python-developers-iris-embedded-python-early-access-program Small Demo https://community.intersystems.com/post/intersystems-ai-contest-kick-webinar https://community.intersystems.com/post/lets-chat-join-intersystems-developers-discord https://community.intersystems.com/post/class-projections-and-projection-classes https://community.intersystems.com/post/how-verify-if-attribute-exists-object Did you know it? Persistence and SerialObject https://gist.github.com/grongierisc/629a4f966d103c19cc298b4bb833a6e Dossier External gateway https://github.com/grongierisc/iris-r-gateway-template Interview Fabien Cabot Stream #3 : https://www.youtube.com/watch?v=PrIQ9x6KdBM News https://community.intersystems.com/post/my-reviews-open-exchange-july-2021 https://spound.github.io/iris_offline_docs/ http://dreamymclean.intersystems.skytapdns.com:52773/csp/docbook/Doc.View.cls youtube links : fireship : https://www.youtube.com/c/Fireship micode : https://www.youtube.com/channel/UCYnvxJ-PKiGXo_tYXpWAC-w https://community.intersystems.com/contests/1 : https://community.intersystems.com/post/intersystems-iris-rest-application-patterns https://community.intersystems.com/post/add-business-item-your-production-code https://github.com/thewophile-beep/integrated-ml-demo Did you know it? Snapshot vs Resultset https://github.com/grongierisc/BatchSqlOutboundAdapter/tree/SnapShotvsResultSet SSR (Server Side Rendering) vs CSR (Client Side Rendering) Dossier How OBS works Interview Théophile Thierry Next : Stream #4 : https://www.youtube.com/watch?v=GHhowDrbmCc News https://community.intersystems.com/post/github-has-new-feature-vs-code-cloud https://blog.octo.com/ https://blog.octo.com/bd-le-deploiement-continu-cd/ https://www.developpez.com/ https://community.intersystems.com/contests/1 https://community.intersystems.com/post/intersystems-iris-analytics-contest https://openexchange.intersystems.com/package/Open-API-Client-Gen https://openexchange.intersystems.com/package/Export-Studio-Snippets-to-VS-Code https://www.docker.com/products/docker-desktop Did you know it? Parameter DEFAULTGLOBAL As STRING = "^IRIS.Temp.Rest.AsyncJob"; CORS with unantheticated user https://docs.intersystems.com/irisforhealthlatest/csp/docbook/DocBook.UI.Page.cls?KEY=GREST_cors#GREST_cors_configure Dossier Async REST Call https://github.com/grongierisc/iris-csvgen-ui/tree/master/src/Grongier/Rest/Async Interview Yann De Cambourg
Announcement
Anastasia Dyubaylo · Jan 17, 2022

The winners of the InterSystems Datasets Contest

Hey Developers, It's time to announce the winners of the InterSystems Datasets contest! Are you ready? A storm of applause goes to these developers and their applications: 🏆 Experts Nomination - winners were determined by a specially selected jury: 🥇 1st place and $4,000 go to the Medical Datasets app by @Muhammad.Waseem 🥈 2nd place and $2,000 go to the iris-kaggle-socrata-generator app by @José.Pereira and @Henrique 🥉 3rd place and $1,000 go to the Health Dataset by @Yuri.Gomes More winners: 🏅 $100 go the ApacheLog-Dataset by @Evgeniy.Potapov 🏅 $100 go the exchange-rate-cbrf by @MikhailenkoSergey 🏅 $100 go the dataset-finance by @Oliver.Wilms 🏅 $100 go the openflights_dataset @Andreas.Schneider 🏅 $100 go the iris-python-faker by @Dmitry.Maslennikov 🏅 $100 go the Dataset OEX reviews by @Robert.Cemper1003 🏅 $100 go the Dataset Lightweight M:N by @Robert.Cemper1003 🏅 $100 go the dataset-covid19-fake-news by @henry 🏆 Community Nomination - an application that received the most votes in total: 🥇 1st place and $1,000 go to the iris-kaggle-socrata-generator app by @José.Pereira and @Henrique 🥈 2nd place and $500 go to the Medical Datasets app by @Muhammad.Waseem 🥉 3rd place and $250 go to the iris-python-faker by @Dmitry.Maslennikov Our BIG congrats to all the participants and winners! Thank you all for being attentive to our coding competition and for the efforts you pay into this contest! Thanks to the experts, the contest organization and congrats to the contestants. Many thanks to DC for all of your support, It was great contest and I learned a lot, Congratulations to all winners. Congratulations to everyone! Congratulations to the winners!! ![awesom](https://media.giphy.com/media/srg19CG0cKMuI/giphy.gif) Congratulations!!!
Question
Sehinde Raji · Dec 6, 2021

Node JS for InterSystems IRIS

Newbie I am currently running a docker image with Iris 2021.1 and I would like to install node js on to it. I have had a look at the instructions on the intersystems online learning portal and I must say its very confusing. Some of the documentation says that you can only install it on 2019. Other parts say that it doesn't matter and you can install it if you have a dev directory. I checked my dev directory and there it isn't there. Sadly this is very inconsistent. Does anyone know if it is possible to install on the above mentioned version of Iris ? The most important thing you have to understand first, that when you use containers-way for running your application (and Docker here is just one of the ways, to run containers). You have to remember, that container should be as simple as possible, and do just only one thing. So, it means, that your NodeJS application, should run in a separate container, even if it connects to IRIS, it still has to be run separately and connected to IRIS over TCP. So, you can use any official Debian-based NodeJS image, put InterSystems NodeJS driver in it, as well as your application, and run it. And your IRIS will run in a separate container, no matter which version. Just as another option, I've recently published a project. Running in NodeJS, and connects to IRIS. It does not use an official driver and can be installed with npm (no readme, yet). Supports only SQL queries at the moment. You can look at this code, for example of usage. Just installing this package inside a Debian-based docker image with NodeJS, will be enough. Thank you very much for your advice it is very much appreciated