Search

Clear filter
Article
Iryna Mykhailova · Jan 3, 2023

My take on the course Building Basic HL7 Integrations with InterSystems on InterSystems Learning

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

Breaking News: InterSystems IRIS for Health - The New InterSystems Data Platform for Healthcare Applications!

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

InterSystems IRIS Advanced Analytics and InterSystems IRIS for Health Advanced Analytics preview is published

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: [![asciicast](https://asciinema.org/a/334969.svg)](https://asciinema.org/a/334969)
Announcement
Derek Robinson · Apr 10, 2020

New Podcast: Introducing InterSystems Reports

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

New Podcast: User Experience at InterSystems

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

InterSystems IRIS AI Programming Contest

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

New Video: InterSystems Cloud Manager

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

RealWorld Application with InterSystems IRIS

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

InterSystems Open Exchange Overview Webinar

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

InterSystems IRIS for Health FHIR Contest

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

InterSystems Full Stack Contest: WINNERS!

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

New Video: Adopting InterSystems IRIS

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!
Announcement
Jeff Fried · Jan 21, 2019

InterSystems IRIS 2019.1 preview

The preview release of InterSystems IRIS 2019.1 is now available - give it a try!Kits and container images are available via WRC's preview download site.InterSystems IRIS Data Platform 2019.1 is the third major version of InterSystems IRIS. It has many new capabilities including:Significant enhancements to SQL usability and performanceImproved scalability and operations for sharded clustersClient language updates and performance boostsNew interoperability capabilities that speed configuring and troubleshooting of productionsSystem security, performance, and efficiency enhancementsThese are detailed in the draft documentation and release notes for InterSystems IRIS.Server platform support for traditional installations have been updated, as have the base OS layer and storage drivers for InterSystems IRIS containers. You can read details in the draft Supported Platforms document.With 2019.1, InterSystems IRIS now officially supports self-service BI tools using ODBC connections, specifically Tableau and PowerBI. Customers interested in using these are encouraged to take the Power BI survey or Tableau survey; this feedback will help us in providing dedicated connectors to these tools in a future release.Preview releases allow our customers to get an early start working with new features and functionality. They are supported for development and test purposes, but not for production. Glad to see thew newest version, great work.Hope to see some details about community and expression editions. Unfortunately, both of these versions did not work well for me as I expected, so, I would like to see how they differ from the original version and about limitations. Is there an ETA for 2019.1 preview versions of Caché and Ensemble, for those who haven't yet migrated to InterSystems IRIS? Great news Jeff. It looks like a significant release and the one we will be targeting for our move from Caché to IRIS.But in this context, what I'm missing from your announcement and the release notes is mention of an upgrade installation from Caché to IRIS (rather than a completely new install and then having to manually create all configuration and security items that exist on the Caché platform and having to rename database files and so on and so on). You stated in late November that was in the works and coming for 2019.1. Hi John - for Caché and Ensemble we have just released a 2018.1.1 version, and will shortly have a 2018.1.2. We don't plan a 2019.1 version of Cache and Ensemble - we're focused on keeping these stable and adding in specific enhancements as needed, and on making it easy for customers to migrate to InterSystems IRIS when it's right for them. Hi Wolf - You are correct, this preview does not include the upgrade installation from Caché to IRIS. Still in the works; we'll have more news about this shortly. In that case I'd like to lobby for devchange JGM785 to get into Ensemble 2018.1.2. This devchange addresses a longstanding weakness in Portal, namely that its schema editor didn't respect server-side source control. Thanks, John...yes this request is already registered and your lobbying seems to have already started through a different channel ;-) OK, we will get out some of these details. If you can drop a line about what didn't work that would be great. - email joe.carroll@intersystems.com, or file something in the WRC, or use the feedback button on the quickstarts - There is a known issue that you may be looking at w.r.t. limitation on the # databases. We'll also have a 'call for feedback' on the Developer Community forum about this soon, have a few things to adjust first.
Question
ramya sri · Dec 11, 2018

What is The Mirroring in InterSystems Data Platforms

what is mirroring?? Take a look at this documentation. It goes in to a lot of detail with some useful diagrams.*edit*There is also this useful Mirroring 101 forum post. If ever you are looking for generalized information, you can always look at learning.intersystems.com as well as the documentation (docs.intersystems.com). There's a lot of good videos there that you can use to help get going. If you have any specific questions there are plenty of us who would be happy to answer them. I agree with the previous answers as a good starting point. If you get past there and want to set up a mirror, take a look at this post.
Article
Peter Steiwer · Dec 21, 2018

AnalyzeThis – Quick start into InterSystems BI

Easily transform a CSV file into a personalized preview of DeepSee - InterSystems BI AnalyzeThis can be found on InterSystems Open Exchange. Use the Download link to navigate to GitHub and begin installing the project. Follow the “Installation” section of the GitHub README. After installation, navigate to the User Portal from the Management Portal: Once here, a new Link will have been added, click on the link and then select "New" to begin: Use “Browse” to locate a csv file to import: Click on “Next” to see a preview of your data and select “Measure” or “Dimension”: As defined, “Measures” are the value you would like to aggregate. “Dimensions” are the values you would like to aggregate on. You can also select to hide properties that are not good Dimensions or Measures. For example, “ProviderId” is unique, so this will not be a good value to group on. We also do not want any sort of sum or aggregate of this number, so we will not include it here: All properties default to a Dimension. We will find some properties we want to change to be Measures: Here we can see that “TotalDischarges”, “AverageCoveredCharges”,”AverageTotalPayments”, and “AverageMedicarePayments” would be good values to aggregate. We will make them Measures: We also know these are dollar amounts, so we will change their type from Integer to Currency: Now that we are happy with our data, we can click “Import”. This will start processing the data as seen here: Once this stage is complete (speed depends on the amount of data being processed), we will see some new buttons on the dialog box: Here we will click on “Sample Dashboard” to view the generated sample based on our data: We can now have our data in a Cube so that we can start exploring the analytics capabilities in just a few minutes. If any bugs are experienced during this process, please feel free to email me at psteiwer@intersystems.com, or file a bug report on GitHub. For general questions, please comment on this article so others can benefit from the information as well. Head over to InterSystems Open Exchange and download AnalyzeThis today! We had to chose one out of these 4 book covers for AnalyzeThis, we chose #1, do you agree with us? Yes, the 1st one is a full match)@Peter.Steiwer, do you plan also to share the short screencast on how to use the tool in the best way? We could deploy it on Community Channel I do not currently have a screencast, but on the Community Channel there is the Flash Talk from Global Summit 2018 that can be viewed for now Hi @Peter.Steiwer!Tried to play with the demo and got the following:Installed on IRIS Docker Community version: IRIS for UNIX (Ubuntu Server LTS for x86-64 Containers) 2019.2 (Build 107U) Wed Jun 5 2019 17:26:23 EDT Hello @Evgeny.Shvarov, Just to close the loop on this issue, @Peter.Steiwer fixed it back in July 24, 2019. Please feel free to download the latest version here. Thanks, Asaf Hi, @Asaf.Sinay , @Peter.Steiwer! Yes, tried this on mac recently with 2019.3 on IRIS docker CE. This bug is solved - great! But on the final step, it says "It's working"... - and it's working for a long time. Never saw the result, yet) Hi @Evgeny.Shvarov Please feel free to create an Issue on GitHub. Please include the CSV file you are trying to use as well Peter done https://github.com/psteiwer/AnalyzeThis/issues/35 Objectscript Package manager has the updated version 1.1.2 as well. So Analyzethis can be installed as: USER:zpm>install analyzethis Hi @Evgeny.Shvarov This is fixed in v1.1.3