Search

Clear filter
Announcement
Simon Player · Sep 12, 2017

InterSystems IRIS Data Platform

Modern businesses need new kinds of applications — ones that are smarter, faster, and can scale more quickly and cost-effectively to accommodate larger data sets, greater workloads, and more users.With this in mind, we have unveiled InterSystems IRIS Data Platform™, a complete, unified solution that provides a comprehensive and consistent set of capabilities spanning data management, interoperability, transaction processing, and analytics. It redefines high performance for application developers, systems integrators, and end-user organizations who develop and deploy data-rich and mission-critical solutions. ​InterSystems IRIS Data Platform provides all of the following capabilities in a single unified platform:Data ManagementAn ultra-high performance, horizontally scalable, multi-model database stores and accesses data modeled as objects, schema-free data, relational data, and multi-dimensional arrays in a single, highly efficient representation. It simultaneously processes both transactional and analytic workloads in a single database at very high scale, eliminating latencies between event, insight, and action, and reducing the complexities associated with maintaining multiple databases. InteroperabilityA comprehensive integration platform provides application integration, data coordination, business process orchestration, composite application development, API management, and real-time monitoring and alerting capabilities to support the full spectrum of integration scenarios and requirements. AnalyticsA powerful open analytics platform supports a wide range of analytics, including business intelligence, predictive analytics, distributed big data processing, real-time analytics, and machine learning. It is able to analyze real-time and batch data simultaneously at scale, and developers can embed analytic processing into business processes and transactional applications, enabling sophisticated programmatic decisions based on real-time analyses. The analytics platform also provides natural language processing capabilities to extract meaning and sentiment from unstructured text, allowing organizations to streamline processes that reference customer emails, knowledge databases, social media content, and other unstructured text data. Cloud DeploymentAutomated “cloud-first” deployment options simplify public cloud, private cloud, on-premise, and virtual machine deployments and updates. You can learn more about this new data platform by visiting our online learning page Simon Player,Director of Development, Data Platforms and TrakCare. Hi , Did we have iris cube like cache and ensemble or iris is different. please explain me how to work with iris i am really confused about iris. Here is a lot of information on Intersystems IRIS to reduce confusion.Your InterSystems sales rep will have more.
Announcement
Josh Lubarr · Oct 19, 2017

InterSystems Documentation Satisfaction Survey

Hi, Community!We are pleased to invite you to participate in the InterSystems Documentation Satisfaction survey. As part of ongoing efforts to make our content more usable and helpful, Learning Services wants your feedback about InterSystems documentation. The survey covers many different areas of documentation, and you can complete it in about five minutes. The deadline for responses is October 30. Also, responses are anonymous. The survey is over, thanks! And also you can earn 300 points in Global Masters for the survey completion.
Announcement
Developer Community Admin · Dec 2, 2015

InterSystems Atelier Field Test

InterSystems Atelier Field Test is now available.Supported customers who have credentials to access the WRC can find the client download here:https://wrc.intersystems.com/wrc/BetaPortalCloud2.csp Thank you for your work! Atelier field test is really cool. Just two questions: - Is there any chance to extend 15 days period of test? It would be great (I can't test it full time). - Can we access to Atelier Ensemble Test server with Studio? I've tried, but I couldn't. It would be very helpful to compare working with Atelier and Studio at the same time with the same code. Kind regards! Since you work on the client with Atelier, and only use the server for deployment/compilation/debugging, it does not matter if you need to restart the server every two days, and it allows bug fixes to be deployed automatically. If you export to XML from Atelier and use source control on a system using Studio, then you should see the code automically refresh in Studio when you open the file. The test is not limited to two weeks. That was simply the expiration on the license. We updated the beta facility with a new version and a more generous license. Happy coding! I can confirm that it doesn't matter when my cloud instance goes away, I just go back to the portal and deploy the new version and bugs that I found over the last few weeks are usually simply fixed. Is there a way to force my "instance" to expire/update without waiting the two weeks? What's the right support channel to use for the cloud-based Atelier FT server? I log in at https://wrc.intersystems.com/wrc/BetaPortalCloud.csp and click the "Launch Server" button. The button disappears immediately and is replaced by text saying "Your Atelier Server has been launched, it will run for the next (expired)." and when I click on the xxx-.isc.appsembler.com/csp/sys/UtilHome.csp URL I am offered I get a page reading " No Application Configured This domain is not associated with an application. " John - The WRC is handling any calls with regard to the beta cloud portal. I saw this and reached out to the cloud provider as the issue is coming from their side. I will let you know as soon as I hear back. Hi Bill,When will the official release be out? Have been waiting since the 2015 after our 2014 conference when we heard it would by done by end of 2015? Really exited not to work on Windows anymore and also not using studio in remote connections as it chews bandwidth and tends to be really slow. Please read the announcement here: https://community.intersystems.com/post/announcement-about-cach%C3%A9-20162-and-20163-field-test-programs We have been holding updates of Atelier to finish refactoring to conform to the changes outlined there. Kits are being published for 16.2 today and a new Atelier kit will be available in "Check for Updates" today or tomorrow. Any progress on this yet? My 1.0.90 Atelier's "Check for Updates" still tells me it finds none. I've already updated my 2016.2 FT instance to the latest you've published (build 721), so I expect my Atelier won't play well with that until it gets updated too. A new kit will be posted this week, probably today. Updated just now and received build 232. Thanks.
Question
Ankita JAin · May 31, 2017

Unit test in InterSystems with Jenkins

Hi ,I am stuck with unit test failure with intersystem . In case of unit test failure, the build in jenkins is succeding while the build in jenkins should fail in case unit test failure .In cache programming i am using %UnitTest.Manager class and DebugRunTestCase method within it. I'm able to link studio with jenkins. I wanna fail my build in jenkins, if any of the test cases fails. Could anyone help? Please, provide how you call Caché from Jenkins? Please tell us very clearly how to exit the cache terminal via command line and then that batch script should fail the jenkins job ? Please tell us if it is feassible in intersystem . We have tried with all methods from intersystem doc library but still we could not progress (Jenkins job is not getting triggered based on boolean value passed from cache). Please suggest Hi Ankita,Would you be able to provide some more details about how you currently run the unit tests from your batch script? Regards,Caza Hi Caza , We are facing the following issues :- 1. We are getting the boolean value for the pass and fail unit test cases in cache Intersystem, but we are not able to assingn this boolean value into a variable in a batch script( r3 in this case) 2. @ECHO %FAILUREFLAG% is not giving any output to us, can you help with that also. Please suggest us for the following problems or some alternative approach. The Batch script code is here :- :: Switch output mode to utf8 - for comfortable log reading @chcp 65001 @SET WORKSPACE="https://github.com/intersystems-ru/CacheGitHubCI.git" :: Check the presence of the variable initialized by Jenkins @IF NOT DEFINED WORKSPACE EXIT 1 @SET SUCCESSFLG =%CD%\successflag.txt @SET FAILUREFLAG =%CD%\failureflag.txt @ECHO %FAILUREFLAG% @DEL "%SUCCESSFLG%" @DEL "%FAILUREFLAG%" :: The assembly may end with different results :: Let the presence of a specific file in the directory tell us about the problems with the assembly ::% CD% - [C] urrent [D] irectory is a system variable :: it contains the name of the directory in which the script is run (bat) :: Delete the bad completion file from the previous start ::@DEL "% ERRFLAG%" :::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::: :: CREATING CACHE CONTROL SCRIPT :: line by line in the build.cos command to manage the Cache :::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::: :: If the Cache is installed with normal or increased security :: then in the first two lines the name and password of the user Cache @ECHO user>build.cos @ECHO password>>build.cos :: Go to the necessary NAMESPACE @ECHO zn "MYNAMESPACE" >>build.cos @ECHO do ##class(Util.SourceControl).Init() >>build.cos @ECHO zn "User" >>build.cos @ECHO set ^^UnitTestRoot ="C:\test" >>build.cos @ECHO do ##class(%%UnitTest.Manager).RunTest("myunittest","/nodelete") >>build.cos @Echo set i=$order(^^UnitTest.Result(""),-1) >>build.cos @Echo write i >>build.cos @Echo set unitResults=^^UnitTest.Result(i,"myunittest") >>build.cos @ECHO Set r3 = $LISTGET(unitResults,1,1) >>build.cos @ECHO if r3'= 0 set file = "C:/unittests/successflag.txt" o file:("NWS") u file do $SYSTEM.OBJ.DisplayError(r3) >>build.cos @ECHO if r3'= 1 set file = "C:/unittests/failureflag.txt" o file:("NWS") u file do $SYSTEM.OBJ.DisplayError(r3) >>build.cos ::@ECHO if 'r3 do $SYSTEM.Process.Terminate(,1) ::@ECHO halt @IF EXIST "%FAILUREFLAG%" EXIT 1 ::@ECHO do ##class(%%UnitTest.Manager).RunTest("User") >>build.cos ::@ECHO set ut = do ##class(%%UnitTest.Manager).RunTest("User") >>build.cos ::set var = 1 >>build.coss :: If it did not work out, we will show the error to see it in the logs of Jenkins ::@ECHO if ut'= 1 do $SYSTEM.OBJ.DisplayError(sc) >>build.cos ::echo %var% @Echo On @ECHO zn "%%SYS" >>build.cos @ECHO set pVars("Namespace")="MYDEV" >>build.cos @ECHO set pVars("SourceDir")="C:\source\MYNAMESPACE\src\cls\User" >>build.cos @ECHO do ##class(User.Import).setup(.pVars)>>build.cos :: Download and compile all the sources in the assembly directory; ::% WORKSPACE% - variable Jenkins ::@ECHO set sc = $SYSTEM.OBJ.ImportDir("%WORKSPACE%", "*. Xml", "ck",. Err, 1) >>build.cos :: If it did not work out, we will show the error to see it in the logs of Jenkins ::@ECHO if sc'= 1 do $SYSTEM.OBJ.DisplayError(sc) >>build.cos :: and from the cos script create an error flag file to notify the script bat ::@ECHO if sc'= 1 set file = "% ERRFLAG%" o file :( "NWS") u file do $ SYSTEM.OBJ.DisplayError (sc) with file >> build.cos :: Finish the Cache process ::@ECHO if sc'= 1 set file = "% ERRFLAG%" o file :( "NWS") u file do $ SYSTEM.OBJ.DisplayError (sc) with file >> build.cos :::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::: :: Call the Cache control program and pass the generated script to it :: :::::::::::::::::::::::::::::::::::::::::: :::::::::::::::: C:\InterSystems\HealthShare\bin\cache.exe -s C:\InterSystems\HealthShare\mgr -U %%SYS <%CD%\build.cos :: If the error file was created during the cos script execution - we notify Jenkins about this ::@IF EXIST "%ERRFLAG%" EXIT 1 Hi Ankita, I found a couple of issues in the script that might affect your end results:- the folder C:\unittests doesn't exist (at least not on my computer); unless the value of the WORKSPACE env variable is C:\untittest then you have to ensure the folder exists (you can create it either using batch mkdir or using COS ##class(%%File).CreateDirectoryChain() method )- what is stored in the ^UnitTest.Result(i,"myunittest") global is not a status code but a numeric value; so I would suggest replacing Do $system.OBJ.DisplayError(r3) with a simple write command, like this: @ECHO if r3'= 0 set file = "C:/unittests/successflag.txt" o file:("NWS") u file write r3 >>build.cos @ECHO if r3'= 1 set file = "C:/unittests/failureflag.txt" o file:("NWS") u file write r3 >>build.cos Regarding "@ECHO %FAILUREFLAG%" - make sure there are no spaces before or after the = character in the following two commands: @SET SUCCESSFLG =%CD%\successflag.txt @SET FAILUREFLAG =%CD%\failureflag.txt When I did copy/paste of the example script I ended up with a space character before the = character. Can you try these changes and let me know how you go? Cheers,Caza Thanks for your response it worked If you add to your batch script something like: do ##class(com.isc.UnitTest.Manager).OutputResultsXml("c:/unittests/unit_test_results.xml") then you could pass on the unit_test_results.xml file to the JUnit plugin from Jenkins. This will give you useful reports, duration and individual results breakdown, etc. For example: https://support.smartbear.com/testcomplete/docs/_images/working-with/integration/jenkins/trend-graph.png Yay! You can create a windows batch file, where you can write commands to call Cache terminal using cterm.exe Here's an object and SQL approaches to get Unit Tests status. One gotcha in windows is making sure the encoding on your .scr file is in UTF-8. Windows thinks a .scr file is a screensaver file and can give it a weird encoding. Once I switched it to UTF-8 it worked as described in the documentation. I don't know how you call Caché method from Jenkins, but anyway you can use $SYSTEM.Process.Terminate in Caché script to exit with an exit status. Something like this. set tSC=##class(%UnitTest.Manager).DebugRunTestCase(....) if 'tSC do $SYSTEM.Process.Terminate(,1) halt I suggest that you may use csession or cterm to call Caché code, then you should get exit code and send it to Jenkins, which will be recognized by Jenkins as an error and will fail the job. Hi, Thanks Dmitry Maslennikov for the Response.Could you please help us in Clarifying the below Query.Is there any methods/ways through which will get to know whether any of the Unit Test cases is/are failing (we are getting an url of the csp page with the report which has the passed failed status) as we need to send this failure status to Jenkins for the Build to Fail (where in we have acheive this part making the build failure/success based on harcoded boolean) Hi, We use something like the below to output the unit test results to an xml file in JUnit format. /// Extend %UnitTest manager to output unit test results in JUnit format. /// This relies on the fact that unit test results are stored in <b>^UnitTest.Result</b> global. Results displayed on CSP pages come from this global. Class com.isc.UnitTest.Manager Extends %UnitTest.Manager { ClassMethod OutputResultsXml(pFileName As %String) As %Status { set File=##class(%File).%New(pFileName) set i=$order(^UnitTest.Result(""),-1) if i="" quit $$$OK // no results kill ^||TMP // results global set suite="" for { set suite=$order(^UnitTest.Result(i,suite)) quit:suite="" set ^||TMP("S",suite,"time")=$listget(^UnitTest.Result(i,suite),2) set case="" for { set case=$order(^UnitTest.Result(i,suite,case)) quit:case="" if $increment(^||TMP("S",suite,"tests")) set ^||TMP("S",suite,"C",case,"time")=$listget(^UnitTest.Result(i,suite),2) set method="" for { set method=$order(^UnitTest.Result(i,suite,case,method)) quit:method="" set ^||TMP("S",suite,"C",case,"M",method,"time")=$listget(^UnitTest.Result(i,suite,case,method),2) set assert="" for { set assert=$order(^UnitTest.Result(i,suite,case,method,assert)) quit:assert="" if $increment(^||TMP("S",suite,"assertions")) if $increment(^||TMP("S",suite,"C",case,"assertions")) if $increment(^||TMP("S",suite,"C",case,"M",method,"assertions")) if $listget(^UnitTest.Result(i,suite,case,method,assert))=0 { if $increment(^||TMP("S",suite,"failures")) if $increment(^||TMP("S",suite,"C",case,"failures")) if $increment(^||TMP("S",suite,"C",case,"M",method,"failures")) set ^||TMP("S",suite,"C",case,"M",method,"failure")=$get(^||TMP("S",suite,"C",case,"M",method,"failure")) _$listget(^UnitTest.Result(i,suite,case,method,assert),2) _": "_$listget(^UnitTest.Result(i,suite,case,method,assert),3) _$char(13,10) } } if ($listget(^UnitTest.Result(i,suite,case,method))=0) && ('$data(^||TMP("S",suite,"C",case,"M",method,"failures"))) { if $increment(^||TMP("S",suite,"failures")) if $increment(^||TMP("S",suite,"C",case,"failures")) if $increment(^||TMP("S",suite,"C",case,"M",method,"failures")) set ^||TMP("S",suite,"C",case,"M",method,"failure")=$get(^||TMP("S",suite,"C",case,"M",method,"failure")) _$listget(^UnitTest.Result(i,suite,case,method),3) _": "_$listget(^UnitTest.Result(i,suite,case,method),4) _$char(13,10) } } if $listget(^UnitTest.Result(i,suite,case))=0 && ('$data(^||TMP("S",suite,"C",case,"failures"))) { if $increment(^||TMP("S",suite,"failures")) if $increment(^||TMP("S",suite,"C",case,"failures")) if $increment(^||TMP("S",suite,"C",case,"M",case,"failures")) set ^||TMP("S",suite,"C",case,"M",case,"failure")=$get(^||TMP("S",suite,"C",case,"M",case,"failure")) _$listget(^UnitTest.Result(i,suite,case),3) _": "_$listget(^UnitTest.Result(i,suite,case),4) _$char(13,10) } } } do File.Open("WSN") do File.WriteLine("<?xml version=""1.0"" encoding=""UTF-8"" ?>") do File.WriteLine("<testsuites>") set suite="" for { set suite=$order(^||TMP("S",suite)) quit:suite="" do File.Write("<testsuite") do File.Write(" name="""_$zconvert(suite,"O","XML")_"""") do File.Write(" assertions="""_$get(^||TMP("S",suite,"assertions"))_"""") do File.Write(" time="""_$get(^||TMP("S",suite,"time"))_"""") do File.Write(" tests="""_$get(^||TMP("S",suite,"tests"))_"""") do File.WriteLine(">") set case="" for { set case=$order(^||TMP("S",suite,"C",case)) quit:case="" do File.Write("<testsuite") do File.Write(" name="""_$zconvert(case,"O","XML")_"""") do File.Write(" assertions="""_$get(^||TMP("S",suite,"C",case,"assertions"))_"""") do File.Write(" time="""_$get(^||TMP("S",suite,"C",case,"time"))_"""") do File.Write(" tests="""_$get(^||TMP("S",suite,"C",case,"tests"))_"""") do File.WriteLine(">") set method="" for { set method=$order(^||TMP("S",suite,"C",case,"M",method)) quit:method="" do File.Write("<testcase") do File.Write(" name="""_$zconvert(method,"O","XML")_"""") do File.Write(" assertions="""_$get(^||TMP("S",suite,"C",case,"M",method,"assertions"))_"""") do File.Write(" time="""_$get(^||TMP("S",suite,"C",case,"M",method,"time"))_"""") do File.WriteLine(">") if $data(^||TMP("S",suite,"C",case,"M",method,"failure")) { do File.Write("<failure type=""cache-error"" message=""Cache Error"">") do File.Write($zconvert(^||TMP("S",suite,"C",case,"M",method,"failure"),"O","XML")) do File.WriteLine("</failure>") } do File.WriteLine("</testcase>") } do File.WriteLine("</testsuite>") } do File.WriteLine("</testsuite>") } do File.WriteLine("</testsuites>") do File.Close() kill ^||TMP quit $$$OK } }
Question
Jose Sampaio · Sep 19, 2018

MQTT Protocol with InterSystems technologies

Hi community members!Please, I'm looking for any references or experiences using InterSystems technologies with MQTT (Message Queuing Telemetry Transport) protocol .Thanks in advance! Hi Evgeny!I will take look on this.Tks. Hi, Jose!Have you seen this article? Also pinging @Attila.Toth in hope to provide most recent updates.
Announcement
Daniel Kutac · Oct 29, 2018

InterSystems Prague Meetup # 1

We had our first meetup of the Prague Meetup for InterSystems Data Platform last Thursday! As it was our first such venue, the attendance was not large, but we believe it was a good start. Those who attended could learn about new features that InterSystems IRIS brings to our partners and customers as well as listen to a presentation discussing what it takes to migrate from Caché or Ensemble to InterSystems IRIS and eventually containerizing their applications. We all enjoyed excellent assortment of various tea species, accompanied by vegetarian food. (so you know what you can expect next time :) ) Attached you find a picture taken at the meetup. Looking forward to see you next time and perhaps in a bigger group! Dan Kutac Congratulations! In past, we had a similar event in Austria named "Tech Talk" that formed a national user community over time.I wish you a lot of success,Robert Thank you Robert!Dan
Announcement
Kristina Lauer · Jun 20, 2023

Go deeper with InterSystems technologies

Dive into the details of InterSystems technologies with long-term online programs and classroom courses. Then, show off your skills with program and certification badges! Find all the details in this month's Learning newsletter. Don't forget to subscribe to receive the newsletter in your inbox!
Announcement
Vadim Aniskin · Jun 21, 2023

InterSystems Ideas News #7

Hi Developers! Welcome to the 7th edition of the InterSystems Ideas news bulletin! Read on to learn what has happened on the Ideas Portal since the previous bulletin: ​​​​✓ More than 200 ideas are already on the portal ✓ Idea was implemented by a Community member ✓ Implement an idea and get a tech bonus on the Grand Prix 23 Contest ✓ Ideas posted recently Since the launch of the Ideas Portal, 204 ideas have been posted there. Now 25 of them have already been implemented, and 17 are planned for implementation. @Francisco.López1549 was added to the Hall of Fame for the implementation of an idea IRIS classes for OpenAI API by @Yuval.Golendginer 👏Thank you for implementing this idea👏 Developers participating in the InterSystems Grand Prix 23 Programming Contest can get 4 technical bonus points for the implementation of Community Opportunity ideas. Recently posted ideas 1. Add a "Type-to-Filter" ability in dropdown selections. by @Victoria.Castillo2990 2. Make Data Transformation UI guess about message types automatically by @Evgeny.Shvarov 3. Make Every Operation and Service Expose its message classes by @Evgeny.Shvarov 4. Custom Visualizations for Physicians by @Ikram.Shah 5. Introduce InterSystems IRIS support for Apache Airflow by @Evgeny.Shvarov 6. Introduce an Interoperability module (adapter, operation) for pdf.co by @Evgeny.Shvarov 7. Add a parameter in Visual Trace to see the message contents in XML or JSON by @Sylvain.Guilbaud 8. Specific cache buffers per DB by @Yaron.Munz8173 9. Module deployment support via Production Export in Dev environment by @Alexander.Woodhead 10. Envrionment variable support in System Default Settings by @Alexander.Woodhead 11. Settings should be a part of Mirroring by @Scott.Roth 12. Have nicknames for community users by @Minoru.Horita 13. Make all Production Item Settings available in Defaults Settings by @Stefan.Cronje1399 14. Add hyperlink to documentation web page from management portal options by @LuisAngel.PérezRamos 15. Delete drafts from InterSystems Developer Community by @Yuri.Gomes 👏Thank you for generating new ideas👏 Don't forget to vote, comment, and subscribe to the ideas to track and influence their progress. And look out for the next news bulletin! Hey Community! 👋While reading comments to ideas I found out that the idea "Include support for GraphQL" is implemented. @Gevorg.Arutiunian9096 welcome to the "Hall of Fame" page of the Ideas Portal for implementation of this idea! 👏 Hi Developers! One more idea is implemented by Community members. 👏 @John.Murray thank you so much for implementing the idea Unit testing in VSCode and welcome to the "Hall of Fame" page! 🏆 @Lorenzo.Scalese 👋 thank you for implementing the idea "REST API for Security Package" and congratulations on your second record in the the "Hall of Fame" page! 👏
Article
Nikolay Solovyev · Jun 21, 2023

Telegram Adapter for InterSystems IRIS

The Telegram Adapter for InterSystems IRIS serves as a bridge between the popular Telegram messaging platform and InterSystems IRIS, facilitating seamless communication and data exchange. By leveraging the capabilities of the Telegram API, the adapter allows developers to build robust chatbots, automate tasks, and integrate Telegram with InterSystems IRIS applications. The most common scenarios where the Telegram Adapter can be used include: Real-Time System Notifications: Sending immediate notifications about specific events occurring in the system. This can include alerts, updates, or important system information delivered to users or administrators via Telegram. Customer Interaction and chatbot Applications: This can involve various activities such as appointment scheduling, appointment reminders, and conducting NPS (Net Promoter Score) surveys to gather customer feedback. Intelligent chatbots can be created that integrate with existing systems, have access to extensive knowledge bases, and are capable of answering user questions. Training and Testing: It can be used to deliver training materials, interactive quizzes, or conduct assessments through Telegram. Key Features and Functionality Bi-Directional Communication All features of the Telegram Bot API are supported (https://core.telegram.org/bots/api) Out-of-the-box business services, business operations, and messages Adapter Technical Details. The telegram-adapter package includes not only the adapter itself but also ready-to-use business services (Telegram.LongPollingService.cls and Telegram.WebHookService.cls), a business operation (Telegram.BusinessOperation), and the Telegram.Request message class. It is assumed that you will not need to create your own business services or business operations. Each of these business services will create and send a message containing all the raw data (received from telegram) to the designated production component as specified in the settings. Additionally, you have the option to configure automatic file (document) saving from incoming messages. To send a message, you need to create a Telegram.Request message, specifying which API method to invoke, and in the Data field, include the JSON with all the required fields for the Telegram API. For example, let's send a text message: Set msg = ##class(Telegram.Request).%New() Set msg.Method = "sendMessage" // All possible fields are described here https://core.telegram.org/bots/api#sendmessage Set msg.Data = { "chat_id" : (..ChatId), "text": ("*bold text*" _$$$NL_ "_italic text_ " _$$$NL_ "```"_$$$NL_"pre-formatted fixed-width "_$$$NL_"code block```"), "parse_mode": "MarkdownV2", "disable_notification": "true" } Return ..SendRequestAsync("Telegram.BusinessOperation", msg) To send files such as images, videos, audio, and other types of files, you need to add the full file name (including the path) to the Files collection of the Telegram.Request object and use the same path in the corresponding fields of the JSON message. Here's an example: Set filePath = "/path/to/photo.jpg" Set msg = ##class(Telegram.Request).%New() Set msg.Method = "sendPhoto" Do msg.Files.Insert(filePath) // All possible fields are described here https://core.telegram.org/bots/api#sendphoto Set msg.Data = { "chat_id": (..ChatId), "photo": (filePath), "caption": ("IRIS Telegram Adapter Demo") } Return ..SendRequestAsync("Telegram.BusinessOperation", msg) Telegram Adapter Demo The telegram-adapter-demo package includes an example of an Echo chatbot implementation. The bot responds to any text message sent to it. If you send a .png file, it will also reply with a thumbnail of that image, automatically generated by Telegram. To run this example, follow all the installation steps outlined in the documentation provided at https://github.com/nsolov/telegram-adapter-demo#readme. By completing the installation process, you will be able to launch and experience this Echo chatbot example.
Announcement
Bob Kuszewski · Jun 30, 2023

Upcoming InterSystems Container Changes

When IRIS 2023.2 reaches general availability, we’ll be making some improvements to how we tag and distribute IRIS & IRIS for Health containers. IRIS containers have been tagged using the full build number format, for example 2023.1.0.235.1. Customers have been asking for more stable tags, so they don’t need to change their dockerfiles/Kubernetes files every time a new release is made. With that in mind, we’re making the following changes to how we tag container images. Major.Minor Tags: Containers will be tagged with the year and release, but not the rest of the full build number. For example, where an image is accessed currently as containers.intersystems.com/intersystems/iris:2023.2.0.606.0 Will now be accessed as containers.intersystems.com/intersystems/iris:2023.2 latest-em and latest-cd Tags: The most recent extended-maintenance and continuous-delivery releases will be tagged with latest-em and latest-cd, respectively. This provides a shorthand notation that can be used in documentation, examples, and development environments. We do not advise using these tags for production environments. Preview: Developer preview releases will all be clearly tagged with -preview so you can easily separate out pre-release containers from production-ready containers. The most recent preview release will helpfully be tagged with latest-preview. If you’re looking for the full build number for an InterSystems container, that’s available as a label, which you can view with the docker inspect command. For example: docker inspect --format '{{ index .Config.Labels "com.intersystems.platform-version"}}' containers.intersystems.com/intersystems/iris:2023.1.0.235.1 Containers will no longer be distributed via the WRC download site. If you’re one of the few customers downloading containers from the WRC download site, now’s the time to switch to the InterSystems Container Registry (docs). While we’re here, as a reminder that we have been publishing multi-architecture manifests for IRIS containers. This means that pulling the IRIS container tagged 2022.3 will download the right container for your machine’s CPU architecture (Intel/AMD or ARM). If you need to pull a container for a specific CPU architecture, tags are available for architecture-specific containers. For example, 2022.3-linux-amd64 will pull the Intel/AMD container and 2022.3-linux-arm64v8 will pull the ARM container. We’ll stop posting to the iris-arm64 repositories soon since multi-architecture streamlines the process of getting the right containers on the right machines. If you have questions or concerns, please reach out to the WRC. Hi Bob, That's good news and I like new names much more than old ones. I hope old tags for old releases will still be available? A couple of entries from my container tagging wishlist (one can dream, you know) - provide :latest tag for all containers, but especially for community ones, which will just pull the latest working release without having to rebuild dockerfiles every year when license expires - provide 2023.1.x tag which will follow the latest minor version 🎉, great news ! I join Sergei on latest tag in addition of latest-cd and latest-em. Awesome! Please add latest too. Great improvements! Looking forward to it, Bob. - provide 2023.1.x tag which will follow the latest minor version It's not clear to me whether or not this is already the plan for the new Major.Minor tags. For instance, when IRIS 2024.1.1 is released, will it be at containers.intersystems.com/intersystems/iris:2024.1 (where IRIS 2024.1.0 images would likely have existed previously) or containers.intersystems.com/intersystems/iris:2024.1.1? @Robert.Kuszewski can you please clarify? The plan for new IRIS containers is to use YYYY.R format only. Let's walk through an example of a few releases for a hypothetical IRIS 2024.1 release. Release Old Tag New Tag Initial GA 2024.1.0.123.0 2024.1 First maintenance 2024.1.1.234.0 2024.1 Security Fix 2024.1.1.234.1 2024.1 This new scheme greatly simplifies your work to keep up with whatever mix of maintenance and security releases we provide. All you need to do is reference iris:2024.1 and you'll pick up the latest bug and security fixes without making any changes to your code. As for the latest tag, we like the idea so much that we're giving you two. One that lets you get the latest release (iris:latest-cd) and one that lets you get the latest long-term-support release (iris:latest-em). You also can use intersystemsdc/iris-community:latest or just intersystemsdc/iris-community for the latest InterSystems IRIS Community Edition release. And intersystemsdc/iris-community:preview for the latest preview build. intersystemsdc/irishealth-community and intersystemsdc/irishealth-community:preview for InterSystems IRIS For Health Community Edition Well you gave me two so I should have one spare wish :) Make iris:latest-cd just iris:latest, this way we can just skip the "latest" bit altogether and just use iris without any tag at all.
Announcement
Preston Brown · Apr 11, 2024

InterSystems HealthShare Developer

As a InterSystems HealthShare Developer, you will be a part of an Agile team to build healthcare applications and implement new features while adhering to the best coding development standards. Your key responsibilities include: Design and implement data integrations using InterSystems HealthShare/IRIS between HIE partners and internal On-prem/Cloud systems Debug and fix defects in InterSystems HealthShare/IRIS related to HIE connected Healthcare participants Develop XSLTs and DTLs to transform CCDA/FHIR/HL7 messages to and from Summary Document Architecture (SDA) format Ensure systems development and support, and create design and technical specifications from business requirement specifications Oversee best practices design and development, participate in code reviews, and collaborate with fellow developers and Technical Leads Required Skills Must have strong software development experience Should have experience in InterSystems HealthShare UCR, IRIS database, ObjectScript, and XSLT Development Must have experience in Integration protocols such as TCPIP/MLLP, SFTP, REST, SOAP Must be able to create DTL mappings from SDA and workflows to process documents Should have proficiency in CCDA, HL7, JSON and XML messaging If Interested reach out to Preston Brown @ pbrown@cybercodemasters.com. Please provide your updated resume/Full Name/Contact phone number and your expected salary. 1099 rate is $60 - $70/hour. This position will be for 2+ years.
Announcement
Derek Robinson · Apr 17

[Video] What is InterSystems OMOP?

Hi, Community! Looking to get actionable insights from your healthcare research? See how InterSystems OMOP can help: 👨‍🔬What is InterSystems OMOP? With InterSystems OMOP—a cloud-based software-as-a-service—you can transform clinical data into the OMOP format and get faster insights. Benefits include: Create research data repositories efficiently. Easily ingest, transform, and store data. 🎬Watch the video to learn more!
Announcement
Irène Mykhailova · Apr 24

InterSystems Ideas News #21

Hi Community! Welcome to Issue #21 of the InterSystems Ideas newsletter! This edition highlights the latest news from the Ideas Portal, such as: ✓ General statistics✓ Community Opportunity ideas Here are some March numbers for you. During this month, we had: 19 new ideas 1 implemented idea 6 comments 72 votes 👏 Thanks to everyone who contributed in any way to the Ideas Portal last month. In recent months, you've added several ideas that were categorized as Community Opportunity, which means that any member of the Developer Community is welcome to implement them and thus pave their way to the Hall of Fame! So here they are: Idea Author Dapper support in IRIS Vadim Cherdak InterSystems IRIS Project Initializer @Yuri.Gomes Use InterSystems Interoperability as a Traceability tool for GenAI LLM pipelines @Evgeny.Shvarov Introduce Flyway Support in IRIS @Evgeny.Shvarov Load Data on VSCode @Yuri.Gomes Add InterSystems wrapper for Supabase @Evgeny.Shvarov ✨ Share your ideas, support your favorites with comments and votes, and bring the most interesting ones to life! 🙏
Announcement
Irène Mykhailova · Mar 25

InterSystems Ideas News #20

Hi Community! Welcome to Issue #20 of the InterSystems Ideas newsletter! This edition highlights the latest news from the Ideas Portal, such as: ✓ General statistics✓ Results of the "DC search" sweepstakes✓ DC search ideas to vote for Here are some numbers from February for you. During this month, we had: 20 new ideas 2 implemented ideas 17 comments 59 votes 👏 Thanks to everyone who contributed in any way to the Ideas Portal last month. In our sweepstakes dedicated to improving the DC search, we've received 17 unique ideas! We will review them in the next few weeks and try our best to implement your great suggestions! Moreover, we're happy to announce the winner of our sweepstakes — @Jiayan.Xiang, who will soon receive the prize. More sweepstakes are in the works, so don't miss your chance to become a lucky winner! To wrap up this bulletin, check out the DC search suggestions and vote for your favorites, so we know what you're looking forward to the most Idea Author Search by key topics and parameters @Andre.LarsenBarbosa Improving Search Results Display @Andrew.Leniuk Empty Search Query @Andrew.Leniuk Typo Correction and Synonym Search @Andrew.Leniuk Personalized search @Andrew.Leniuk Search by version @DavidUnderhill DC Search by date range @Yuri.Gomes Remember user picked search result @Jiayan.Xiang Perform results query through translation @Andre.LarsenBarbosa Combined filter for search @Andre.LarsenBarbosa In relevance search order by date desc @Iryna.Mykhailova Phonetic search in the community @Andre.LarsenBarbosa AI-Powered Recommendations @diba Add filtering by type of post in DC search @Iryna.Mykhailova People Also Search For @Yuri.Gomes Voice search @Yuri.Gomes Improve selectivity of Articles and Questions in DC @Robert.Cemper1003 ✨ Share your ideas, support your favorites with comments and votes, and bring the most interesting ones to life! 🙏
Article
Kristina Lauer · Dec 20, 2024

Get certified in InterSystems technology

With InterSystems industry-standard certification exams, you and your team can get certified to validate your skills and demonstrate your expertise in InterSystems technology. Find the right exam for your role! Developers: InterSystems IRIS Development Professional and InterSystems IRIS SQL Specialist System Administrators: InterSystems IRIS System Administration Specialist System Integrators: InterSystems HL7 Interface Specialist CCR Technical Implementers: InterSystems CCR Technical Implementation Specialist Unified Care Record Implementers: HealthShare Unified Care Record Technical Specialist Patient Index implementers: HealthShare Patient Index Technical Specialist Reach out to certification@intersystems.com or visit the InterSystems Certification website for more information.