Clear filter
Article
Andreas Schneider · Mar 28, 2021
This small tutorial described how to „register“ the ADO.NET Database Provider (Driver) for InterSystems IRIS and InterSystems Caché on a Windows machine.
Before we start: Why need the ADO.NET Database Provider to be registered?
ADO.NET provides factory classes standardize the way programmer will create a provider-specific Connection. This simplifies the way programmers create provider specific instances in a generic data access API. Details about that can be found here: https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/obtaining-a-dbproviderfactoryIf an Application use this system to obtain a list of available Data Providers, the provider needs to be registered. In my example I want to use the .Net Data Provider for InterSystems IRIS in a MS SQL Server Integration Service Project. This Application (SSIS) use a Connection Dialog that lists all on this machine available\known Data Provider:
As you can see there are no InterSystems Provider available. The following section describes what needs to be done to list the provider on this connection dialog.
machine.config?!
Each .NET Framework data provider that supports a factory-based class registers configuration information in the DbProviderFactories section of the machine.config file on the local computer. The DbProviderFactories class uses the machine.config file(s) to resolve the invariant name to the appropriate provider factory type. The machine.config file is located in …\<windows>\Microsoft.NET\Framework\<version>\config\machine.config.
On my computer e.g:C:\Windows\Microsoft.NET\Framework\v4.0.30319\ConfigandC:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config
Add DbProviderFactories
Open the machine.config file with a text editor and search for “system.data”. You found possibly an empty block like this:
These are the values we have to insert for IRIS:
<add name="InterSystems IRIS Data Provider"invariant="InterSystems.Data.IRISClient"description=".Net Data Provider for InterSystems IRIS"type="InterSystems.Data.IRISClient.IRISFactory,InterSystems.Data.IRISClient,Version=4.5.0.0,Culture=neutral,PublicKeyToken=ad350a26c4a4447c"/>
… and this for Caché
<add name="InterSystems Cache Data Provider"invariant="InterSystems.Data.CacheClient"description=".Net Data Provider for InterSystems Cache"type="InterSystems.Data.CacheClient.CacheFactory,Intersystems.Data.CacheClient,Version=4.5.0.0,Culture=neutral,PublicKeyToken=ad350a26c4a4447c"/>
The “system.block” should now look like this:
Pay attention to the <DbProviderFactories></DbProviderFactories> tags!
Now start Visual Studio (Data Tools), create a SSIS Projekt and open the Connection Manager again. The dialog should look like this:
Great! The providers are listed!... unfortunately that is not enough. The providers are not working if you select one of the new entries you get this message:
That’s happened because the Provider are not known it the GAC (=global assembly cache), so the entries can’t be found*.
*If you have done an IRIS\Caché installation on your computer (or just the client tools) maybe the provider is already registered in the GAC and you don’t this message and all is already working. Congratulations! 😊
Register InterSystems provider in the GAC
To registered the InterSystems provider on a computer you can do it this way:
Find the files first:
Intersystems.Data.CacheClient.dll (for Caché)
InterSystems.Data.IRISClient.dll (for IRIS)
Within an IRIS installation you can find the file e.g. …\dev\dotnet\bin\v4.5Copy the files on your computer in a folder (InterSystems.Data.IRISClient.dll).
Now you are able to register the Provider in the assembly cache with the gacutil.
Using gacutil
If you have a Visual Studio installed you can use the Visual Studio Developer Command Prompt:
That has the advantage that you don’t need to look for the gacutil path, for installation just type:
gacutil -i <full path to your dll>\InterSystems.Data.CacheClient.dlle.g.: gacutil -i D:\dev\privat_repos\NativeCacheTest\lib\InterSystems.Data.CacheClient.dll
You should see the message: Assembly successfully added to the cache
To remove something from gac, use the option "-u": gacutil -u InterSystems.Data.CacheClient
Install both provider:
gacutil -i <full path to your dll>\InterSystems.Data.IRISClient.dllgacutil -i <full path to your dll>\InterSystems.Data.CacheClient.dll
If you don’t have the “Visual Studio Developer Command Prompt” you need to search the gacutil executable first. On my computer it is located at: "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\gacutil.exe"
Install:"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\gacutil.exe" -i D:\dev\privat_repos\NativeCacheTest\lib\InterSystems.Data.IRISClient.dll"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\gacutil.exe" -i D:\dev\privat_repos\NativeCacheTest\lib\InterSystems.Data.CacheClient.dll Remove:"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\gacutil.exe" -u InterSystems.Data.CacheClient"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\gacutil.exe" -u InterSystems.Data.IRISClient
It works! :-)
And now… if you open the SSIS Project again, navigate to the Connection Manager it should looks like this:
You can now select the IRIS provider, see and configure all available connections details.
Thanks for reading.
Announcement
Ming Zhou · Jun 2, 2023
InterSystems is pleased to announce the central component for InterSystems Supply Chain Orchestrator™, the 2023.1 release of InterSystems IRIS for Supply Chain, is now Generally Available (GA).
InterSystems Supply Chain Orchestrator is built on InterSystems IRIS®, our complete cloud-first data platform that enables a smart data fabric architecture to make it easier to build and deploy high-performance, machine learning-enabled applications that connect data and application silos. It brings together the power of InterSystems IRIS with supply chain-specific accelerators and frameworks to provide optimized solutions for supply chain orchestration, demand sensing and forecasting, fulfillment, and fast-moving consumer goods repackaging.
A key component of InterSystems Supply Chain Orchestrator is InterSystems IRIS for Supply Chain, which brings smart data fabric architecture offered by InterSystems IRIS closer to supply chain use cases and help to achieve accelerated time-to-value.
*: requires InterSystems IRIS advanced server
**: available through InterSystems Package Manager (IPM)
Feature highlights
InterSystems IRIS for Supply Chain 2023.1 offers the following capabilities on top of InterSystems IRIS:
A customizable supply chain data model
Built-in analytics cubes
KPI configuration framework
Issue lifecycle managements
Issue analysis and actionable insights
Full REST API support
Documentation and references
Product documentation: InterSystems IRIS for Supply Chain 2023.1
InterSystems online learning: supply chain learning path
InterSystems overview: supply chain
Article
Evgeny Shvarov · Jul 30, 2019
Hi Developers!
This is the second post on the resources for Developers. This part is about Open Exchange
Using Open Exchange to Learn InterSystems
InterSystems Open Exchange is a applications gallery of tools, connectors, and libraries which InterSystems Developers submit to share the experience, approaches and do business. All the applications are either built with InterSystems data platforms or are intended to use for development with InterSystems data platforms.
If you are a beginner developer you can take a look at applications in Technology Example category. All the applications in this category come with open source code repositories, so you are able to run the samples and examples in a docker container with IRIS on your laptop or in the cloud IRIS sandbox. Examples:
Also, check Tools and Developer Environment categories to use the tools for developers on InterSystems data platforms. These categories contain applications which he;p developers in their day-to-day work to speed up the development process, setup modern ways of change management and continuous integration. Examples:
Frameworks category will help you to leverage interoperability libraries with popular frameworks to develop your solutions with InterSystems faster. E.g. you can use Python, node.js, Laravel, etc to build solutions with IRIS. Examples:
Also, use stars sorting to learn which applications are more popular amongst InterSystems Developers. And subscribe to OpenExchange tag not to miss the announcements of Open Exchange applications and don't hesitate to ask your questions on DC.
Article
Iryna Mykhailova · Jan 3, 2023
Because I had no idea how to build an integration solution for HL7 and didn't know where to start, I decided to follow the course Building Basic HL7 Integrations with InterSystems on Learning portal to get at least the idea of where to begin. After I studied all of it, I decided it might be a good idea to share my thoughts and reflections about it with everyone.
This learning course consists of five steps:
Explore an InterSystems integration engine (30 minutes)
Route HL7v2 messages efficiently (1 hour)
Modify data to meet system requirements (1 hour 20 minutes)
Troubleshoot at the time of need (2 hours)
Practice skills from this path (1 hour 30 minutes)
But before we begin dissecting this course, here are some optional resources that may be useful if you're a complete newbie in InterSystems products:
Online Course: Introduction to InterSystems Products and Technologies (30 minutes)
Video: What is InterSystems IRIS for Health? (3 minutes)
The first course gives the basics of InterSystems products and technologies and lets students discover what products exist, how they are used, and how they compare to each other from a nontechnical perspective. It takes approximately 30 minutes to complete and consists of four instructional lessons and several quiz questions.
From the second course, you will learn what's InterSystems IRIS for Health. Using this platform, developers can create and scale healthcare applications with tools that are uniquely designed to meet the current and future needs of modern healthcare.
After the course in question, the system proposes the user to continue with two more courses:
Begin Building a healthcare production in a development environment (online course, 30 minutes)
Continue on to the next step with Building Advanced HL7 Integrations (learning path, 2 hours)
So, let's get back to the course at hand and look more in detail at these five stages.
The first one is the basic architecture and data flow of a production, the InterSystems integration solution. It takes around 30 minutes if you don't make pauses. This course consists of three lessons and several quiz questions after each lesson.
This part will teach you the basic architecture of integration capabilities and how data flows through these components, enabling interoperability between systems.
At the end of this course you will be able to:
Identify the parts of an integration engine
Explain the functions of business services, business processes, business operations, and adapters.
After a business service pulls data into production, it can:
Send messages to a business process or business operation.
Accept responses from a business process or business operation.
Return responses to calling applications.
Business processes can accept, return, and send response messages to and from business services and business operations:
Accept request messages from a business service or other business process.
Coordinate requests and responses from multiple production components.
Return responses to business processes or business services.
The main purpose of a business operation is to send data out of a production.
Within a production, adapters do the following:
Manage the specific technology and protocol used to communicate with an application.
Include details such as ports and message headers that help production communicate with the application.
Isolate connection-specific logic from the rest of the production.
Some adapters are bi-directional, allowing messages to flow to and from business services or business operations. There are two types of adapters:
Inbound adapters – used in business services.
Outbound adapters – used in business operations.
Describe message flow within an integration solution.
The second step consists of 1 online course, 4 videos and an exercise:
Course: HL7 Business Services and Business Operations (30 minutes)
Video: Configuring Validation of HL7 V2 Messages in Productions (6 minutes)
Video: Routing HL7 Messages (8 minutes)
Video: Using HL7 V2 Bracket and Parentheses Syntax To Identify Virtual Properties (6 minutes)
Video: Using the Expression Editor in Business Rules (8 minutes)
Exercise: Building a Message Router (15 minutes)
The course contains four lessons and several quiz questions after each lesson.
This part will teach you how to create, configure, and copy the business services and business operations used for HL7v2 message input and output into an InterSystems IRIS data platform production.
Upon completion of this course, you will be able to:
Create new HL7v2 business services and business operations in production (both with file and TCP adapters).
Copy an HL7v2 component already in production.
Configure HL7v2 business services and business operations.
The first video shows how to configure the validation setting on an HL7v2 message router to validate HL7v2 messages in interoperability productions.
The second video shows the HL7v2 routing rules in InterSystems IRIS for Health productions and how to use the rules editor to create a set of rules to evaluate incoming messages and route them to the appropriate downstream systems.
The following two videos give you an overview of using rules in the business process.
The last exercise will check if you understood how to create a message router and define message routing rules within an HL7v2 production.
You will get hands-on experience on how to:
Create an HL7 V2 production.
Build a message router.
Define message routing rules within a production.
The third step consists of an online course, an exercise and a video:
Course: Data Transformations Basics (1 hour)
Exercise: Building a Data Transformation (15 minutes)
Video: Designing Custom Schemas (3 minutes)
The course contains eight lessons and several quiz questions after each lesson.
This part will teach you how to create data transformations using the graphic interface of Management Portal, map fields, use functions to modify fields, and use literals as values for fields.
In the end, you will learn how to test and implement the transformation.
Upon completion of this course, you will be able to:
Explain possible reasons for using a data transformation.
A data transformation creates a target message based on a source message. Frequently, the resulting target message has both a different format and different data from the source.
Create a data transformation using the wizard in the Management Portal.
Describe when you would use two possible values of Create: copy and new.
Implement a function to change the value of a field.
Assign the value of a target field to a literal value.
Explain the difference between the if action and the switch action, and how to use them in your data transformations.
Test a data transformation.
The exercise will check if you have understood how to create a data transformation in an HL7v2 production. At the end of this exercise, you will be able to:
Create a data transformation.
Test a data transformation.
The final video will show you when and how to design custom schemas within your productions to handle messages that do not meet HL7v2 standards.
The fourth step consists of 2 online courses and a video:
Course: Searching Messages Using the Message Viewer (1 hour 30 minutes)
Video: Error Handling in HL7 Productions (7 minutes)
Course: Introduction to Troubleshooting Productions (30 minutes)
The first course contains four lessons and several quiz questions after each lesson.
This part will teach you how to navigate the Message Viewer and search for messages using information from the message header, message body, and message content.
Upon completion of this course, you will be able to:
Access and identify sections of the Message Viewer.
Message Viewer is a useful tool for searching messages in your system. For example, you can use the Message Viewer to find all messages from a local hospital in the last two hours or all bank transactions for a certain day.
Search for messages in the Message Viewer using base criteria, header fields, body properties, lookup table fields, and virtual document properties.
Resend messages.
The video will show you the troubleshooting options for HL7v2 productions in InterSystems IRIS for Health. You'll see how to use alerts to quickly resolve issues, how to handle bad messages and NACKs, and how to resend or suspend messages.
For example, we can add an alert in case of an error:
and see the reason for the error in the Event Log:
Additionally, we can add an alert if the incoming message is in the wrong format:
The final course contains five lessons and several quiz questions after each lesson.
This part will teach you how to troubleshoot productions, review locations and purposes of Management Portal pages to view logs, messages, queues and jobs.
Upon completion of this course, you will be able to:
Access the Management Portal pages: Configuration, Message Viewer, Event Log, Queues, and Jobs.
Find information to help with troubleshooting on the Management Portal pages.
Find information to help with troubleshooting in the Configuration page tabs: Log, Messages, Queue, and Jobs.
The fifth and final step is an exercise: Building Your First HL7 Production (1 hour 30 minutes).
The task is to move from a legacy system to InterSystems IRIS for Health and create a production HL7v2 based on a set of specifications, using an approach that creates an interface to generate the same messages as the old system.
At the end of this course, you will be able to:
Apply your knowledge of HL7v2 concepts to a real-world scenario.
Create your own HL7v2 production with InterSystems IRIS for Health.
I can say that this exercise requires more knowledge than was given during this training. But it is possible to open clues on how to do all the steps. Anyway, I found it very useful and instructive to do this last part. Made it a nice finishing touch to the 6+ hour experience.
If you are new to productions and/or HL7v2, this training will be a great first step. I totally recommend it.
As usual, if you have any questions about this topic or the training, feel free to ask them in the comments.
--
Disclaimer: All images are taken from the mentioned videos/courses and are the intellectual property of InterSystems. The InterSystems learning team thanks you for your honest review. I agree; overall, the training is a good introduction, but the fifth and final step is more difficult.
Announcement
Evgeny Shvarov · Oct 2, 2018
Hi Community!I'm pleased to announce that we've just launched the new product in the family of InterSystems Data Platforms:InterSystems IRIS for HealthIRIS for Health — is the world’s first and only data platform engineered specifically for healthcare. It empowers you to rapidly create and scale the industry’s next breakthrough applications.Advanced FHIR-Based Solution DevelopmentRepresent all of your data as FHIR resources, and use our FHIR Server to simplify data sharing. Advanced development tools enable you to map between legacy data formats and FHIR to help you increase the value of legacy systems.Certified Healthcare InteroperabilityDeep support for FHIR, HL7 V2, IHE and other standards and protocols* ensures interoperability and improved workflow across the care continuum.*ASTM, CDA® and CCD®, CCDA, DICOM, EDI – ASC X12, HL7 V3, NCPDP, EDIFACT, ITK (England), DMP and HPRIM (France), SS-MIX (Japan), ADHA (Australia), xDT (Germany)Seamless Data ManagementSeamlessly handle multiple forms of data at high speed, with vertical and horizontal scalability. Rapidly build solutions using the tools and technologies that best suit your needs.Open AnalyticsEmpower solutions using our open analytics platform, with your choice of embedded, standards-based, and best-of-breed analytics technologies for exploration, analysis, and prediction.The official press release here!Stay tuned and we'll share with you more information on our new Data Platform!
Announcement
Thomas Dyar · May 27, 2020
Preview releases are now available for InterSystems IRIS Advanced Analytics, and InterSystems IRIS for Health Advanced Analytics! The Advanced Analytics add-on for InterSystems IRIS introduces IntegratedML as a key new feature.
The build number for these releases is: 2020.3.0AA.331.0
Full product installation kits, container images, and evaluation license keys are available via the WRC's preview download site.
Community Edition containers can also be pulled from the Docker store using the following commands:
docker pull store/intersystems/iris-aa-community:2020.3.0AA.331.0
docker pull store/intersystems/irishealth-aa-community:2020.3.0AA.331.0
Advanced Analytics is an add-on to InterSystems IRIS, and introduces IntegratedML, a new feature that brings "best of breed" machine learning to analysts and developers via simple and intuitive SQL syntax. Developers can now easily train and deploy powerful predictive models from within InterSystems IRIS, right where their data lives. Future versions of Advanced Analytics will comprise additional features and third-party components for advanced machine learning and analytics functionality. This release includes documentation for IntegratedML as a User Guide. See also content about IntegratedML on the Learning Services IntegratedML Resource Guide. Here is a quick demo of using IntegratedML:
[](https://asciinema.org/a/334969)
Announcement
Derek Robinson · Apr 10, 2020
In Episode 7 of Data Points, product manager @Carmen.Logue joined the pod to tell us all about InterSystems Reports — the new reporting feature of InterSystems IRIS! Take a listen to hear about its capabilities, use cases, and how it fits into the existing set of analytics technologies.
For more information and to subscribe on your favorite podcast app, head over to https://datapoints.intersystems.com. There, you can also find links to the previous episodes. Make sure to rate the podcast if you're using Apple Podcasts, as well!
Announcement
Derek Robinson · Jun 16, 2020
In Episode 11 of Data Points, UX designer @Ksenia.Samokhvalova joins the podcast to talk about the approach to user experience at InterSystems, how it may differ from commonly considered UX concepts, and what her team is doing to constantly improve usability with the developer's goals in mind. If you'd like to take a quick survey to get involved with UX testing for InterSystems technologies, you can do that here!
Have any topics you've been wanting to hear discussed on Data Points? Leave them in the comments and we can try to work those topics into upcoming episodes!
it was great to chat with you @Derek.Robinson! We hope to hear from our developer users who are interested in giving us Usability feedback - get in touch here!
Announcement
Anastasia Dyubaylo · Jun 19, 2020
Hey Developers!
Join our next competition in creating open-source solutions using InterSystems IRIS Data Platform! Please welcome:
➡️ InterSystems IRIS AI Programming Contest ⬅️
Duration: June 29 – July 19, 2020.
Prizes
1. Experts Nomination - winners will be determined by a specially selected jury:
🥇 1st place - $2,000
🥈 2nd place - $1,000
🥉 3rd place - $500
2. Community Nomination - an application that will receive the most votes in total:
🥇 1st place - $1,000
🥈 2nd place - $500
If several participants score the same amount of votes they all are considered as winners and the money prize is shared among the winners.
Who can participate?
Any Developer Community member, except for InterSystems employees. Create an account!
Contest Period
June 29- July 12, 2020: Two weeks to upload your applications to Open Exchange (also during this period, you can edit your projects).
July 13-19, 2020: One week to vote.
July 20, 2020: Winners announcement.
The Topic
🤖 Artificial Intelligence and Machine Learning 🤖
Develop an AI/ML solution using InterSystems IRIS.
We will choose the best AI/ML solution built with InterSystems IRIS. Your application could be a library, package, tool, or any AI/ML solution which uses InterSystems IRIS.
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.
There technology bonuses if you introduce special technology implementations in your application. Stay tuned for bonuses descriptions.
Template Applications
InterSystems IntegragedML Template
InterSystems PythonGateway Template
Helpful Resources
1. How to submit an application to a contest: Publish an application on Open Exchange and Submit an application for the contest
2. Documentation: Using IntegratedML
3. Online courses:
Learn IntegratedML in InterSystems IRIS
Preparing Your Data for Machine Learning
Predictive Modeling with the Machine Learning Toolkit
Judgment
Please find the Judgment and Voting Rules for the Contest here.
So!
Ready. Set. Code.
Join our exciting coding marathon and stay tuned!
❗️ Please check out the Official Contest Terms here.❗️
Here are some ideas for contestants:
MLOperation. Currently, PythonGateway provides low-level PythonOperation aimed at expert users who write Python code themselves. The idea of MLOperation is to build a high-level Interoperability adapter targeted at a broader userbase. Essentially your adapter provides generalized Fit/Predict/Optimize methods and users need to provide the data, target model type, and hyper parameter values. This closes the gap between the hands-off approach of the IntegratedML and low-level approach of the PythonGateway. The work is described in this issue.
New ML language. Interoperability with numerical computational languages or even CASes proper are great and offer the freedom of choice. Furthermore, these math-oriented languages allow faster problem search/space traversal than more generalized languages such as Python. Several classes of supporting ML problems can be solved with them. Callout interface makes implementation process easy (reference implementations: PythonGateway, RGateway, JuliaGateway). Suggested languages: Octave, Scilab.
New showcases in IoT, Real-Time predictions, RPA. Convergent Analytics group provides a lot of starting templates in these fields - as InterSystems IRIS capabilities are an especially good fit for them. I'm always interested in more examples, especially real-life examples of machine learning.
Data Deduplication solutions. Do you have a dataset with a lot of dirty data and know how to clean it? Great. Make a showcase out of it.
Reinforcement learning showcases. Examples of Partially observable Markov decision process or other reinforcement learning technologies.
Also, note that PythonGateway-Template is built upon the Advanced Analytics image, so you can use both IntegratedML and PythonGateway from the same docker image. Great suggestions @Eduard.Lebedyuk !
There's a vast surface area here, so we're really looking forward to something that showcases innovation on the technology end, something that carries a real-world data set/feed, or both! I can't wait until the week is over :-)
PS: don't hesitate to use this channel for any questions you have. Some of our technology in this area is still fresh and we're always happy to learn how we can make it easier to use. Hey Developers,
We have some technology bonuses for the AI Programming Contest:
1. IntegratedML usage - 2 expert vote points2. Python Gateway usage - 1 expert vote point3. Docker container - 1 expert vote point
More details in this post. Stay tuned! Some datasets for participants. Hey Developers!
Please check some interesting ideas for the AI Contest from our GM Advocates:
@Yuri.Gomes: Execute Markov chains to predict commercial intelligence scenarios,
@Rasha.Sadiq: Automated Episode Critical Stage Status by taking various factors into account (by Readmission, Diagnosis, Age, etc).
You can also suggest your own ideas and get 5,000 points on Global Masters.
Whose idea will be next? 🔥 Developers!
Only 3 days left before the start of the 4th InterSystems Online Programming Contest!
You will have 2 weeks (June 29-July 12) to upload your solutions to the Open Exchange and one week (July 13-19) to compete for the main prizes.
So, join our competition and win! 💪🏼 Developers!
Are you ready to participate in our exciting contest? 🚀
The contest begins! And we're waiting for your cool projects! Want more?
Please check out the latest videos on InterSystems Developers YouTube related to the AI contest:
⏯ PythonGateway-Template Demo
⏯ IntegratedML-Template Demo
⏯ InterSystems IRIS AI Programming Contest Kick-Off Webinar
Enjoy and stay tuned! Another task to solve in AI contest. I would like to sugest:
Using NLP, based in a question sugest a list of comunit posts as answer. Hi Renato,
Please explain in more detail?) Hi everyone. We are a team of company "Constructor" and we develop cutting edge cartographic systems. Recently the amount of image data skyrocketed so we want to give our users the ability to tie images to places automatically. For that, we want to use AI/ML technologies and we have a cool task for you
Check my post https://community.intersystems.com/post/task-aiml-contest-recognize-image-coordintates-constructor
Thank you. Hey developers,
The second week of registration has begun - you have 7 days left to submit your applications! Hey Developers!
Please check one more idea for the AI Contest from our GM Advocate:
@Francisco.López1549: Using an API of trading (Crypto.com, Binance, etc..), retrieve all information about cryptocurrencies and evaluate the days, hours and volume of buy and sell of all of them and create prevision of upper/lower price.
Suggest your own ideas and get 5,000 points on Global Masters.
Whose idea will be next? 🔥 Hey Community,
Only 5 days left to upload your apps to the AI Contest!
Show your best coding skills on InterSystems IRIS and earn some $ and glory! 🔥 How to apply for the Programming Contest
Log in to Open Exchange, open your applications section.
Open the application which you want to apply for the contest and click Apply for Contest.
Make sure the status is 'Published'.
The application will go for the review and if it fits the topic of the contest the application will be listed on the Contest Board. Hey Developers,
The first application is already in the Contest Board!
@José.Pereira with the iris-integratedml-monitor-example project is in the game! 🔥
Check out his example on extending %Monitor.Adaptor to monitor IRIS IntegrateML models performance metrics.
And who's next? 😉 Voting for the best application will begin soon!
Only 3 days left before the end of registration for the AI Programming Contest.
Don't miss your chance to win! 🏆 Please welcome the next IRIS contestant:
🤖 iris-ml-suite project by @Renato.Banzai — a suite to start use IRIS as Machine Learning.
And who's next? Tadaa!
One more application is already in the game: ESKLP project by @Aleksandr.Kalinin6636!
Application demonstrates using Python from Intersystems IRIS to resolve linear regression in task of checking similarity of two text strings. Give it a try!
And full speed ahead! 🔥 The voting has been started!
Choose your best InterSystems IRIS application!
Announcement
Anastasia Dyubaylo · Jul 6, 2020
Hi Developers,
The new video from Global Summit 2019 is available on InterSystems Developers YouTube:
⏯ InterSystems Cloud Manager
In this video, we will dive into InterSystems Cloud Manager, which enables consistent and repeatable deployment of applications in the cloud, or on-premises. We will provide code and discuss the details of using a simple abstraction and operating approach to deploying secure and resilient solutions.
Takeaway: InterSystems IRIS includes tools that can help me deploy applications in the cloud.
Presenter: @Steven.LeBlanc, Product Specialist - Cloud Operations, InterSystems
If you would like to explore a wider range of topics related to this video, please use the Resource Guides below:
➡️ System Architecture (Running Fast and Safe) Resource Guide - 2019
➡️ Cloud Deployment Resource Guide - 2019
Enjoy and stay tuned! 👍🏼
Article
Dmitry Maslennikov · Oct 6, 2020
Let's imagine if you would like to write some real web application, for instance, some simple clone of medium.com. Such sort of application can be written using any different language on the backend side, or with any framework on the frontend side. So many ways to do the same application, and you can look at this project. Which offers a bunch of frontends and backends realizations for exactly the same application. And you can easily mix them, any chosen frontend should work with any backend.
Let me introduce the same application realization for InterSystems IRIS on a backend side.
The RealWorld project uses REST and offers already prepared swagger specification, and Postman/Newman collection with tests. So, it helps to implement exactly the same REST API. And fortunately, InterSystems already implemented the way to generate REST API implementation by swagger specification. How to do it is best described here.
So my steps to implement this application were
Generate API from swagger specification
Add a few persistent classes, for every type of objects used in the application, and it's
Users
Articles
Comments
Implement API, test it with Postman
Finally, start with any frontend to see it in life.
Start with docker
You can try what came out of it.
// clone github repository
git clone https://github.com/daimor/realworld-intersystems-iris.git
cd realworld-intersystems-iris
// build and run it with docker-compose
docker-compose up -d --build
After start REST API in IRIS will be available by URL http://localhost:12000/conduit, and it can be tested with newman, you will need npm and npx package installed
APIURL=http://localhost:12000/conduit ./run-api-tests.sh
Same tests running Postman
Frontend is available by URL http://localhost/
UnitTests is available to run with zpm, just enter to iris session
$ docker-compose exec server iris session iris
Node: 0790684cf488, Instance: IRIS
CONDUIT>zpm
zpm: CONDUIT>test realworld [realworld] Reload START
[realworld] Reload SUCCESS
[realworld] Module object refreshed.
[realworld] Validate START
[realworld] Validate SUCCESS
[realworld] Compile START
[realworld] Compile SUCCESS
[realworld] Activate START
[realworld] Configure START
[realworld] Configure SUCCESS
[realworld] Activate SUCCESS
[realworld] Test START
Use the following URL to view the result:
http://172.22.0.3:52773/csp/sys/%25UnitTest.Portal.Indices.cls?Index=48&$NAMESPACE=CONDUIT
All PASSED
[realworld] Test SUCCESS
zpm: CONDUIT>
By default, it goes with Vue frontend, but it's possible to run Angular and React
web=angular docker-compose up -d --build web
web=react docker-compose up -d --build web
web=vue docker-compose up -d --build web
Install with ZPM
InterSystems IRIS part (backend) can be installed with ZPM
USER>zpm
zpm: USER>install realworld [realworld] Reload START
[realworld] Reload SUCCESS
[realworld] Module object refreshed.
[realworld] Validate START
[realworld] Validate SUCCESS
[realworld] Compile START
[realworld] Compile SUCCESS
[realworld] Activate START
[realworld] Configure START
[realworld] Configure SUCCESS
[realworld] Activate SUCCESS
zpm: USER>
And it will create `/conduit` web application, so it should be able to be tested with newman as well, just set correct port
APIURL=http://localhost:52773/conduit ./run-api-tests.sh
And UnitTests can be run with ZPM
zpm: USER>test realworld [realworld] Reload START
[realworld] Reload SUCCESS
[realworld] Module object refreshed.
[realworld] Validate START
[realworld] Validate SUCCESS
[realworld] Compile START
[realworld] Compile SUCCESS
[realworld] Activate START
[realworld] Configure START
[realworld] Configure SUCCESS
[realworld] Activate SUCCESS
[realworld] Test START
Use the following URL to view the result:
http://172.17.0.2:52773/csp/sys/%25UnitTest.Portal.Indices.cls?Index=4&$NAMESPACE=USER
All PASSED
[realworld] Test SUCCESS
Notes
There are a few issues I'm faced with during the development of this project.
%JSON.Adaptor
It works quite well for importing entirely new objects. But, if you would need to partially update the existing object, %JSONImport will not work, for required fields, which it expects to see in a coming JSON.
So, instead of using %JSONImport for updating objects, I've used a simple set from incoming JSON to object if a value is defined.
Export available only to string, stream, and to the output device. Export to Native JSON not available.
API required to return any object wrapped by another object with a property named as a type of returned object. And solved it with using %JSONExportToString, and for arrays, converted to Native JSON
Ignores export for empty collection properties, such as array and list. While an application may expect to get even empty array for the field, but it does not get any field at all.
Did not solve it. Too tricky to solve it without solving it on %JSON.Adapter side.
%REST - Generator for REST implementation, and REST implementation itself
Any compilation of `spec` class will update `impl` class, even if no changes were there. So, it's important to keep generated parts, such as Method names, parameters list, and variable names, the same, or it will be overwritten with the next compile of `spec`, which may happen when the application will be built for production.
It's ok for REST to have endpoint like `/users` and get requests as `/users/` and in this case, it should act the same. But %CSP.REST does not recognize second if defined only the first way.
To solve this issue, had to change swagger specification, with just duplication of `/users` with new endpoint `/users/`
Swagger specification defines default values for parametrized requests, and generator just ignores it
Manually set default values, right in code of methods/ Generator may just overwrite methods definition, and setting default values to parameters will be removed. So, it may break implementation after deployment.
Methods from %REST.REST not available for overriding, it used by `disp` class only, and will be completely overwritten by compilation of `spec` class.
No access to OnPreDispatch method for instance, so, no way to have some more control on, like to check access
Swagger specification defines which endpoint is public and which requires authorization. %REST generator just does not use it.
API requires to use JWT to authorize requests and had to manually check which endpoint needs to check access. Using JWT also quite tricky in IRIS, outside of %OAuth2 implementation.
Generated Methods in `impl` class supposed to return Native JSON objects, streams, or string. But I think it would be good if it would accept %JSON.Adaptor objects as well.
Anyway, it was very interesting to implement such kind of application. And see how it is possible to do it with IRIS.
This application uses this list of features in IRIS.
Native JSON + %JSON.Adaptor
REST, and it's implementation generator by swagger specification
JWT from OAuth2
Containerization
Contest
This project is participating in InterSystems Full Stack Contest, please vote there if you like it. Hi Dmitry,
Thanks for this article. Do you know how to read the Authorization Header in the `.disp` class and pass it onto the `.impl` class?
As you have mentioned in the article, `.disp` class is auto-generated by `.spec` class and does get over-written everytime `.spec` class is compiled. This makes it tricky to modify the `.disp` class to add some code to get the Authorization Header. Are you aware of any other ways to get the header ?
Thanks,
Utsavi I did it in .impl class, here Thanks Dmitry.
Announcement
Anastasia Dyubaylo · Sep 7, 2020
Hi Community!
We're pleased to invite all the developers to the upcoming InterSystems Open Exchange Overview webinar on September 18 at 11:00 AM EDT.
In this webinar you will learn about InterSystems Open Exchange – a gallery of solutions, tools and templates made with InterSystems IRIS, IRIS for Health and other InterSystems data platforms.
What awaits you? In the webinar you’ll know:
What is Open Exchange and how to use it in your favour
Where to find InterSystems solutions
How to promote your own solution made with InterSystems IRIS
How to publish, install and deploy solutions from Open Exchange
How to build your company’s profile on Open Exchange
Join us in the webinar of September with a presenter @Evgeny.Shvarov, Developer Ecosystem manager of InterSystems.
Date: Friday, September 18, 2020Time: 11:00 AM EDT
➡️ REGISTER HERE
Today! Don't miss our webinar!
➡️ JOIN THE WEBINAR HERE Hey Developers!
Now this webinar recording is available on InterSystems Developers YouTube Channel:
Enjoy watching this video! 👍🏼
Announcement
Anastasia Dyubaylo · Aug 5, 2020
Hey Developers!
Want to participate again in the competition of creating open-source solutions using InterSystems IRIS Data Platform? Please welcome:
➡️ InterSystems IRIS for Health FHIR Contest ⬅️
Duration: August 10-30, 2020
Prizes
1. Experts Nomination - winners will be determined by a specially selected jury:
🥇 1st place - $2,000
🥈 2nd place - $1,000
🥉 3rd place - $500
2. Community Nomination - an application that will receive the most votes in total:
🥇 1st place - $1,000
🥈 2nd place - $500
If several participants score the same amount of votes they all are considered as winners and the money prize is shared among the winners.
Who can participate?
Any Developer Community member, except for InterSystems employees. Create an account!
Contest Period
August 10-23: Two weeks to upload your applications to Open Exchange (also during this period, you can edit your projects).
August 24-30: One week to vote.
August 31: Winners announcement.
The topic
💡 Fast Healthcare Interoperability Resources – FHIR 💡
Develop a FHIR solution using InterSystems IRIS for Health data platform.
We will choose the best FHIR application built with InterSystems IRIS for Health. Your application could be a library, package, tool, or any FHIR solution which uses InterSystems IRIS for Health.
The application should work on InterSystems IRIS for Health Community Edition.
The application should be Open Source and published on GitHub.
If the application satisfies some additional requirements listed in this post, it gets additional technology votes.
Template application
IRIS-FHIR-Template
Helpful resources
1. How to submit your app to the contest:
How to publish an application on Open Exchange
How to submit an application for the contest
2. Documentation:
FHIR Support in InterSystems Products
3. Online courses:
Learn FHIR for Software Developers
Building SMART on FHIR Apps with InterSystems FHIR Sandbox
Exploring FHIR Resource APIs
Using InterSystems IRIS for Health to Reduce Readmissions
Connecting Devices to InterSystems IRIS for Health
Monitoring Oxygen Saturation in Infants
FHIR Integration QuickStart
4. Videos:
6 Rapid FHIR Questions
SMART on FHIR: The Basics
Developing with FHIR - REST APIs
FHIR in InterSystems IRIS for Health
FHIR API Management
Searching for FHIR Resources in IRIS for Health
Also, please check the related FHIR playlist on DC YouTube.
5. Q&A on FHIR:
Explore FHIR tag on DC
Ask questions on community.fhir.org
Judgment
Please find the Judgment and Voting Rules for the Contest here.
So!
Ready. Set. Code.
Please join our exciting coding marathon!
❗️ Please check out the Official Contest Terms here.❗️
A very helpful repository to generate synthetic FHIR compatible data shared by @Phillip.Booth
E.g. to generate data for 5 patients in an /output subfolder of a current folder call:
docker run --rm -v $PWD/output:/output --name synthea-docker intersystemsdc/irisdemo-base-synthea:version-1.3.4 -p 5
Which you can load then into IRIS for Health with:
zw ##class(HS.FHIRServer.Tools.DataLoader).SubmitResourceFiles("path/output", "FHIRNamespace", "/restapi/endpoint/fhir/r4") Developers!
We invite you to suggest task ideas for the Health FHIR Contest and get points on Global Masters!
Submit your ideas here: https://github.com/intersystems-community/FHIR-contest-topics/issues and you will get:
800 points - if your task idea is approved
2,000 points more - if you publish an article on DC describing your task idea in details (description, possible solution approaches, links to the documentation, links to the code samples, sample data, etc.)
3,000 points more - if you publish a solution template to start solving the task!
Please let me know after your idea is published because the points are awarded manually. Developers!
You are welcome to use iris-fhir-template to build your InterSystems IRIS for Health solutions for the contest.
The template uses the preview release 2020.3 of InterSystems IRIS for Health Developers!
Are you ready to participate in our exciting contest? 🚀
The contest begins! And we're waiting for your cool projects! Hi guys,
We introduced several topics you may find interesting and use to build FHIR applications with InterSystems IRIS for Health for the FHIR contest.
Amongst them are:
a frontend mobile or web app for FHIR server FHIR REST API or SQL;
Backend apps to perform complex queries and maintain rules;
work with different HL7 data standards.
More details in this post.
Stay tuned! Hi all!
Here're some interesting task ideas for the FHIR contest from our GM Advocates:
@Yuri.Gomes: App to maintain electronic immunization history using FHIR to get and persist data.
@Rasha.Sadiq: Creating a Test to dynamically identify the severity of an episode by taking the diagnosis and age into consideration.
@Udo.Leimberger3230: HL7 v2, HL7v3 Gateway with analyse options (I am thinking about a QueueManagement like RabbitMQ but for the H7 protocol -- Module for ManagementPortal - resend Messages / Cancel Messages ... and ... and .. and.. ).
So!
You can also suggest your own ideas and get up to 5,800 points on Global Masters.
Whose idea will be next? 🔥 Want more?
Watch the latest video on InterSystems Developers YouTube related to the FHIR contest:
⏯ InterSystems IRIS for Health FHIR Contest Kick-Off Webinar
This video describes how to use the IRIS-FHIR-Template to build FHIR solutions using InterSystems IRIS for Health. This template will help you to get started with the contest.
Stay tuned! ✌🏼 Another idea for the contest: use your iPhone's health app data to transform into FHIR data and submit to the FHIR server. See the details Developers!
Here're some additional helpful resources that will help you take part in our competition or even win the IRIS contest! Check them out:
HL7 QuickStart
InterSystems IRIS 2020.1 Tech Talk: API-First Development
InterSystems IRIS 2020.1 Tech Talk: Using InterSystems Managed FHIR Service in the AWS Cloud
FHIR - 7 Most Important Facts in 7 Minutes
Happy coding! 👨💻 So guys,
We introduced some technology bonuses that will give you extra points in the voting:
FHIR Server REST API usage
The usage of SQL Schema of FHIR Resources
Healthcare standards data transformation
Docker container usage
Full details in this post. Ok! After the first week of registration, we already have 2 applications participating in the FHIR competition! Please welcome:
➡️ iris4health-fhir-analytics project by @José.Pereira
➡️ QR-FHIR project by @Yuri.Gomes
So! Who'll be the next? How to apply for the programming contest
Log in to Open Exchange, open your applications section.
Open the application which you want to apply for the contest and click Apply for Contest.
Make sure the status is 'Published'.
The application will go for the review and if it fits the topic of the contest the application will be listed on the contest board. Developers!
You have 6 days to submit your application for the FHIR contest!
Feel free to submit if you haven't finished your project – you'll be able to fix bugs and make improvements during the voting week too. Hey Developers,
One more application is already in the game: iris-fhir-portal project by @Henrique.GonçalvesDias
Give it a try! 🔥 Hey Community,
Only 5 days left to upload your apps to the FHIR Contest!
Show your best coding skills on InterSystems IRIS for Health, earn some $$$ and glory! 💥 Hey guys,
You're very welcome to join the InterSystems Developers Discord Channel to discuss all topics and questions related to the IRIS Programming Contests. There are lively discussions with InterSystems developers!
Join us! 😎 Voting for the best application will begin soon!
Only 3 days left before the end of registration for the FHIR Programming Contest.
Don't miss your chance to win! 🏆
Announcement
Anastasia Dyubaylo · Oct 12, 2020
Hey Developers,
The InterSystems Full Stack Contest is over. Thank you all for participating in our exciting coding marathon!
So it's time to announce the winners!
Our big 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 npm-iris project by @Henrique.GonçalvesDias
🥈 2nd place and $1,000 go to the apptools-admin project by @MikhailenkoSergey
🥉 3rd place and $500 go to the realworld-intersystems-iris project by @Dmitry.Maslennikov
🏆 Community Nomination - an application that received the most votes in total:
🥇 1st place and $1,000 go to the npm-iris project by @Henrique.GonçalvesDias
🥈 2nd place and $250 go to the apptools-admin project by @MikhailenkoSergey
🥈 2nd place and $250 go to the restoreUI project by @Vasiliy.Bondar
Big congratulations to all the participants!
Thank you for your attention to the contest and the efforts you pay in this Full Stack competition!
And what's next?
We will announce the next competition very soon – stay tuned!
➡️ More details in this post. Thank you all for your help and support. Congratulations to all of you!
Great apps, I realized that I have a long way to go and a lot to learn.
Hey guys,
We're pleased to invite you to the Online meetup with the winners of the InterSystems Full Stack contest!
What awaits you at this virtual Meetup? Please find all the details in this post.
Please join! 😉
Announcement
Anastasia Dyubaylo · Jun 10, 2019
Hi Community!
Please welcome a new video on InterSystems Developers YouTube Channel:
Adopting InterSystems IRIS
This video provides an overview of what it takes to move an existing Caché or Ensemble application to InterSystems IRIS. You will learn that migration is not urgent (unless you want to take advantage of new features in InterSystems IRIS) but that it is often less complex than you might expect. We will also discuss configurations in which InterSystems IRIS, Caché, and/or Ensemble can coexist.
Takeaway: Migrating my existing applications to InterSystems IRIS doesn't have to be a huge headache.Presenter: @Andreas.Dieckow
And...
Content related to this session, including slides, video and additional learning content can be found here.
Don`t forget to subscribe our InterSystems Developers YouTube Channel.
Enjoy and stay tuned!