Search

Clear filter
Announcement
Anastasia Dyubaylo · Oct 13, 2020

New Video: Big Data in InterSystems IRIS

Hi Community! Enjoy watching the new video on InterSystems Developers YouTube: ⏯ Big Data in InterSystems IRIS One of the greatest benefits of using InterSystems IRIS to build your application is its ability to effectively harvest and handle vast amounts of data. InterSystems IRIS has options to address big data challenges, including the InterSystems IRIS Spark connector, built-in sharding, and machine learning tools. ➡️ Learn more at the "Big Data QuickStart" learning course. Subscribe to InterSystems Developers YouTube. Enjoy and stay tuned!
Question
Yi Han · Mar 4, 2021

In which industries are InterSystems products used more?

InterSystems has been widely used in medical and health fields. Which other industries have high market share? What's the difference between InterSystems Trakcare and InterSystems Healthshare? we also expanding into Finance, Logistics, Government etc. Trakcare is our package HIS/EMR solution: https://www.intersystems.com/cn/products/trakcare/ HealthShare is a product family to support unified care record. For more info pls connect with our local sales team. @Jun.Qian. THX! Metallurgy, construction, clothing industry, peat extraction, trade, logistics. Also as universal system for financial and accounting for any enterprise.
Announcement
Anastasia Dyubaylo · Mar 8, 2021

InterSystems Grand Prix Contest: CONGRATS THE WINNERS!

Hey everyone, The InterSystems Grand Prix Contest is over. It was an incredible competition with a record number of participating apps and developers! Thank you all for participating! And now it's time to announce the winners! A storm of applause goes to these developers and their applications: 🏆 Experts Nomination - winners were determined by a specially selected jury: 🥇 1st place and $6,000 go to the vscode-intersystems-iris project by @Dmitry.Maslennikov 🥈 2nd place and $3,000 go to the iris-rad-studio project by @Henrique and @José.Pereira 🥉 3rd place and $2,000 go to the HealthInfoQueryLayer project by @Botai.Zhang 🏆 Community Nomination - an application that received the most votes in total: 🥇 1st place and $3,000 go to the HealthInfoQueryLayer project by @Botai.Zhang 🥈 2nd place and $1,500 go to the Dictionary comparison scheme of cache database project by @Weiwei.Yang 🥉 3rd place and $500 go to the vscode-intersystems-iris project by @Dmitry.Maslennikov And... This time, we would also like to reward the developers who took 4-10 places in the Expert nomination! 10,000 points on Global Masters go to these apps and their developers: 🏅 4th place: iris-image-index-demo by @José.Pereira 🏅 5th place: Terminal Multi-Line Command Editor​​​​ by @Robert.Cemper1003 🏅 6th place: Dictionary comparison scheme of cache database by @Weiwei.Yang 🏅 7th place: Create a unified hospital data extraction scheme based on IRIS for Health by @Deming.Xu 🏅 8th place: iris4health-fhir-analytics by @José.Pereira 🏅 9th place: iris-fhir-portal by @Henrique.GonçalvesDias 🏅 10th place: ObjectScript Kernel by @Nikita.Mullin Congratulations to all the winners and participants! Thank you all for your attention to the contest and the efforts you pay in our mega competition! Congratulations to all winners! Congratulations to all winners! Congratulations to all winners! Congratulations to all winners! Congratulations! And congratulations to all the participants - that's awesome work, great applications! Big congratulations to you and @José.Pereira!!! 🤩 Hey everyone, As always, we really appreciate the contribution of all participants to the Grand Prix competition. And this time, we would also like to reward the developers who took 4-10 places in the Expert nomination! 10,000 points on Global Masters go to these apps and their developers: 🏅 4th place: iris-image-index-demo by @José.Pereira 🏅 5th place: Terminal Multi-Line Command Editor​​​​ by @Robert.Cemper1003 🏅 6th place: Dictionary comparison scheme of cache database by @Weiwei.Yang 🏅 7th place: Create a unified hospital data extraction scheme based on IRIS for Health by @Deming.Xu 🏅 8th place: iris4health-fhir-analytics by @José.Pereira 🏅 9th place: iris-fhir-portal by @Henrique 🏅 10th place: ObjectScript Kernel by @Nikita.Mullin Thank you all! And our big congratulations! That's good news! and a real surprise! I appreciate it highly Congratulations to all winners! Thanks @Anastasia.Dyubaylo It's our pleasure to create apps that people enjoy Hey developers! We also want to thank the rest of the participants and their cool applications that were in the InterSystems Grand Prix Contest: interoperability-integratedml-adapter , iris-integratedml-monitor-example and iris-analytics-notebook by @José Roberto Pereira IRIS-REST-API-DATABASEMANAGER by @Lucas.Bourré IRIS Interoperability Message Viewer , iris-history-monitor , npm-iris and isc-generate-db by @Henrique Dias Wsock-Embedded-Py , The adopted Bitmap , Using ZPM for Node.js and WebSocket Client JS with IRIS Native API as Docker Micro Server by @Robert Cemper iris-for-money by @Oliver.Wilms springboot-iris-crud by @Yuri.Gomes Airplane React, Material UI, and REST API by @FlávioLúcio.NavesJúnior appmsw-telestat , zapm , apptools-admin and isc-apptools-lockdown by @MikhailenkoSergey realworld-intersystems-iris , isc-tar and BlocksExplorer by @Dmitry.Maslennikov RESTFUL_API_For_Hotel_OverBooking_System by @jingqi.LIu cmPurgeBackup by @Alexey.Maslov fhir-chatbot , iris-ml-suite and iris-python-suite by @Renato.Banzai IRIS import manager by @Oleh.Dontsov ISC DEV by @Gevorg.Arutiunian Questy by Alexey Nechaev M-commands instead of Excel formulas in cells by @alex.kosinets units by @Dmitrii.Kuznetsov We are waiting for your applications in the next contests🔥🔥🔥 Congratulations to all winners! Congratulations to all Congratulations to all winners ! Well done guys! I'm very proud to had been participated! Glad to see how these contests are stimulating so many people to do their best! I see those apps as ground to create awesome projects in 2021! Indeed @Robert.Cemper1003! Thank you @Anastasia.Dyubaylo ! :) Very happy to had the chance of sharing a project with @Henrique.GonçalvesDias. More brains and hands working together it's better! Congratulations to the winners for their commitment, dedication and for the work presented. certainly, that initiatives like this contribute in a unique way to the expansion of technology and all its potential.
Article
Yuri Marx · Mar 1, 2021

Day 4: Developing with InterSystems Objects and SQL

I'm participating in the Developing with InterSystems Objects and SQL with Joel Solon. The course is very nice and I will share with you some tips I got during the training. Tips presented in the day 4: All data are stored in Globals and Global names start with ^. Example of global: ^animal. Global can have multiples locations to the data ("sub data"). Example: ^animal(1). ^%* globals are accessible from any system-wide (from any namespace). Globals enables IRIS to support multimodel data (object, relational, document, multidimensional, etc). To see globals go the Management Portal > Explorer > Globals > Select Global > View or in Terminal type do ^%G or zwrite ^global. There are an automatic correspondence between persistent classes and SQL Tables: Package is SQL Schema; Class is a Table; Property is a Column; Method is a Store Procedure; (when sqlProc); Relationship between classes is a SQL Foreign Key constraint (must be bi-directional); Object is a Row. One table can correspond to multiple classes, but serial class is part of the table of the persistent class (don't have a specific table). One class can correspond to multiple tables. We have some classes types: Non-registered: not class object (container for methods only); Registered: transient objects; Persistent: SQL persistence in tables; Serial: SQL persistence in the main table (serial is embedded); Datatype: not class object is used to do new validations and conversions to base data types. Classes can be composed by: Properties; Methods; Class queries: SQL Select statements; Parameters: user constants or system constants to configure the class behavior; Foreign keys: to referencial integrity; Indexes: to improve performance and do unique values; Triggers: fire methods associated with persistence events; XData: XML or JSON definitions associated with the class; Storage: description of the data storage. Classes by convention has first letter of the word in Capital. Example: CountryOrigin. Parameters are all capital. Example: COLORNUMBER. Class attributes qualify/configure a class. Example [SqlTableName = Animal] set the table name to a class. [Final] not allows inheritence. [Private] not allows call methods or use properties for non-subclasses. Internally IRIS generate Get and Set to properties, and are not visible but can be declared to change the behavior. Is possible override a method of the superclass, to do this, repeat the class name, the arguments. Is possible increase the number of arguments, not decrease. Use ##super() to call base class method. To create abstract class use [Abstract] and prevent instantiation. Is possible extends multiple classes. Example Class Person extends (%Persistent, %Animal). (Persistent must be the fisrt in the extends, see joel tip in the comments) REST is REpresentational State Transfer. Is based in the HTTP protocol. Use HTTP verbs: GET (select), POST (insert), PUT (update) and DELETE (delete). For expose your class as REST resource extend from %CSP.REST. Use URLMap inside XData block to configure the routes of your REST service. Using the Portal, create a Web Application, enable REST and specify Dispatch class. %JSONAdaptor provides convertion between objects and JSON. Use obj.%JSONImport(jsonObj) to assign DynamicObject to a object. Use obj.%JSONExportToString(.jsonString) to write a JSON String to a object. %JSON.Formatter format a JSON String for human readability. Good tips! Congrats! Could you give an example for items 6 and 7? I always thought that the relationship was a class for a table. 6 & 7 are side effects of object inheritance.Think of a class Person.But Employee Extends PersonSimilar Students Extends Person tooSo you have 3 tables but all are Persons Some with extension some not. @6: Table Employee corresponds to class Person and to class Employee @7: So class person corresponds to Table PERSON, EMPLOYEE , STUDENT Yes, thanks the nice example. Regarding 9, can we change the stored information manually? I know it is generated automatically. @9.9. storage is generated once if not existing yet.you may change it manually (typically data location global) as long as there is nothing stored yetotherwise you lose the existing content. Or you copy it to the new location.My article The adopted Bitmap shows such an example [actually also in contest} Hello YURI MARX GOMES, Thank you for your articles. Always good tips Thanks @Delphine.Morel, good to hear this, is an incentive to keep writing more articles. Point 5-5: Relationship on the object side is bi-directional. Class A has a reference to class B, and class B has a collection of references to class A. On the SQL side, table A has a reference to table B, along with automatic referential integrity. Point 16: Important: for a class to be persistent, %Persistent must be the first class. So the example should be: Class Person extends (%Persistent, Animal) Thanks additional tips! If there is no storage definition then a storage definition whose type is %Storage.Persistent is created when compiling the class. This is done before the storage definition is compiled (every class member is compiled by the class compiler). Then, when the storage definition is compiled and if the type is %Storage.Persistent then the %Storage.Persistent.STORAGECOMPILERCLASS will generate a full storage definition for the current class definition. What does that mean? Well - if this is the first time this storage definition has been compiled then it is most likely empty, other than the type class. The STORAGECOMPILERCLASS will generate a complete storage definition. But even if the storage definition is already defined, the STORAGECOMPILERCLASS still reviews that definition. If there are any changes detected to the class definition then the storage definition is updated to reflect those changes. That means that the user can manually edit the storage definition at any time and the storage compiler will simply make sure that the definition is "complete" - no missing properties, no missing indexes, and so on. Bottom line is that the user is free to make any desired changes, including deleting the storage definition completely. Keep in mind that some changes can make the compiled class incompatible with existing data. Just to clarify - inheritance considers the primary super class hierarchy. %Persistent must be the first class some where in the primary super class hierarchy. Sample.Employee extends Sample.Person which extends %Library.Persistent. Great, thanks!
Article
Yuri Marx · Mar 2, 2021

Day 5: Developing with InterSystems Objects and SQL

I finished my participation in the Developing with InterSystems Objects and SQL with Joel Solon. The course is very nice and I will share with you some tips I got during this the training final day. Tips presented in the day 5: %SYSTEM package has general utiliy classes. Use $system.class.Help() to list the utilities. The main %SYSTEM classes are Encryption (industry encryption methods), OBJ to manage classes and objects, Security for security methods and SQL to use SQL language. IRIS allows validation to the properties and arguments using MINVAL and MAXVAL to integer, FORMAT to date and time, SCALE to decimal, MINLEN, MAXLEN, TRUNCATE, VALUELIST (restrict the input to a list of values) and PATTERN to string. Example: Method Print(name As %String(MAXLEN=50)). You can create new data type validations and convertions extending a datatype like %String and using DisplayToLogical() and LogicalToDisplay() to implement new behaviors. Is possible change the datatype parameter like the PATTERN parameter for change the validation of a string. IRIS uses -> operator to do implicit joins, example: select Country->States->County from Simple.Places. This joins 3 related tables. To create a reference between classes/tables use ForeignKey. Example: ForeignKey CountryFK(Country) References Simple.Country() [ OnDelete = setnull ]. There are the options setnull to set null to the otherside table/class, cascade to propagate the deletion, noaction to no action and setdefault to configure a default value to the reference. Use %ConstructClone() to do a clone of a object and its references. Use SqlComputeCode to the calculated fields. Example: (from IRIS documentation) Property FullName As %String [ SqlComputeCode = {set {*}={FirstName}_" "_{LastName}}, SqlComputed ]; Is possible automate tests using %UnitTest framework. Use %UnitTest.TestCase for defining test cases and %UnitTest.Manager for running a set of Test Cases. To see the results go to System Explorer > Tools > UnitTest Portal. See https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=TUNT. IRIS supports 2 type collections: List: key based on position starting in 1. Declaration: Property States as list of Simple.State. Get: country.States.GetAt(1) Insert: country.States.Insert(florida) Remove: country.States.RemoveAt(1) Count: country.States.Count() Clear: country.States.Clear() Next: country.States.GetNext(1) - to get item 2 Loop: for i=1:1:country.States.Count() { write !, country.States.GetAt(i) Array: key based on associated value. Declaration: Property States as array of Simple.State. Get: country.States.GetAt("FL") Insert: country.States.SetAt(florida, "FL") Remove: country.States.RemoveAt("FL") Count: country.States.Count() Clear: country.States.Clear() Next: country.States.GetNext("FL") - to get item GA Loop: set state = "" for { set val = country.States.GetNext(.state) quit: (state = "") write !, val } To create relationships between classes, we have: Parent/Children: Relationship States as Simple.State [ cardinality = children, Inverse = Country ]. The otherside: Relationship Country as Simple.Country [ cardinality = parent, Inverse = Country ]. One/Many: Relationship States as Simple.State [ cardinality = many, Inverse = Country ]. The otherside: Relationship Country as Simple.Country [ cardinality = one, Inverse = Country ]. One-To-One and Many-to-Many are not supported. One-To-One may be simulated and Many-To-Many can be made using 2 Many-to-One to a relationship table. Stream is object that can contain amount of data larger than limit of regular properties, may store characters (%Stream.GlobalCharacter) or binary (%Stream.GlobalBinary) data. Use the following methods to read/write data: Write(text): write in the end of line; WriteLine(text): write to a new line; Clear(): clear the content of the stream; CopyFrom(stream): copy from a stream and overwrite the current content; Read(length): read characters limited to the length; ReadLine(length): read characters in the current line limited to the length; Rewind(): retorna para o início do stream; MoveToEnd(): move to end of stream. You can use triggers to do something before or after a CRUD event. Example: Trigger T1 [Event = INSERT, Time = AFTER, Order = 1, Foreach = row/object] { write your code }. The IRIS has some functions frequently used: $EXTRACT: get a substring - https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_fextract $FIND: get the position of a value passed as argument - https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_ffind $LENGTH: get the size of a string or substring - https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_flength $LIST: return/create a list of elements - https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_flist $LISTDATA: return the element in the list by position - https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_flistdata $LISTFIND: return the index of a element in the list - https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_flistfind $LISTGET - get an element in the list - https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_flistget $LISTLENGTH - get total of elements in the list - https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_flistlength $PIECE - return or replace a substring using a delimiter - https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_fpiece The course was very nice and has a rich set of practical exercices. The course is important to preparation to IRIS developer certification too. See the course agenda in https://www.intersystems.com/support-learning/learning-services/classroom-learning/?course-view=course-schedule. @11: 1:1 could be a degraded 1:N relationship orby inheriting from a base class as mentioned earlier: "Employee Extends Person" many-to-many can be covered as M:N relationship as I described in my article 3 years ago. Thanks Cemper. Point #11: one-to-one is not supported but can be imperfectly simulated. many-to-many is supported by combining one-to-many among 3 classes. Oops! I posted this without noticing that Robert already handled this one! Perfect! Thanks the contribution! The interactive tutorials with exercises built into the documentation helped me a lot in my time: Caché Tutorial Topics Map Caché Tutorials Also included was a database "SAMPLES" (code and data) with examples for every taste. I often used it for performance testing. Note: I give a link to version 2016.2, because since version 2017.1, for some reason, the developers have changed the display styles in the online documentation and removed some information. Local documentation does not have these disadvantages. In addition, in the <cachesys>\dev\ folder there were numerous demos with source code for various programming languages and connection technologies (С++, C#, Java, PHP, Python, ODBC, JDBC, ADO.NET, ActiveX, XEP, etc.): Incomplete content \dev\tutorials\ \dev\tutorials\csp \dev\tutorials\java \dev\tutorials\mv \dev\tutorials\pojo \dev\tutorials\security \dev\tutorials\UnitTestEx \dev\tutorials\webservices \dev\tutorials\zen \dev\Cache\ \dev\Cache\callin \dev\Cache\callout \dev\Cache\cctrlcpp \dev\Cache\cctrlvb \dev\Cache\ctrldemo \dev\Cache\HAcluster \dev\odbc\samples\ \dev\odbc\samples\php \dev\odbc\samples\select \dev\odbc\samples\sqlgateway \dev\python\ \dev\python\samples \dev\python\samples3 \dev\cdirect \dev\cpp\samples \dev\dblib\samples \dev\dotnet\samples \dev\java\samples \dev\mv\samples \dev\node.js\samples \dev\perl\samples Great tip, thanks! I think Objects and Groovy are actually a bit similar... I don't know if my idea is right or wrong, actually I write very little Objects. Thank you for sharing your experience, It seems to be an enriching training
Announcement
Evgeny Shvarov · Mar 3, 2021

Technology Bonuses for Projects of the InterSystems Grand Prix!

Hi Developers! We had a set of technology bonuses for the InterSystems Grand Prix contest. And here is how projects collected it: Project Total Bonus zapm 10 HealthInfoQueryLayer 13 Data extraction solution between heterogeneous systems 0 Airplane React, Material UI, and REST API 10 springboot-iris-crud 10 iris-rad-studio 4 iris-python-suite 7 fhir-chatbot 11 iris-ml-suite 10 IRIS Interoperability Message Viewer 10 isc-generate-db 10 iris-image-index-demo 17 iris4health-fhir-analytics 23 interoperability-integratedml-adapter 23 iris-integratedml-monitor-example 12 iris-analytics-notebook 14 ObjectScript Reports 0 iris-for-money 12 vscode-intersystems-iris 14 ObjectScript Kernel 5 apptools-admin 10 RESTFUL_API_For_Hotel_OverBooking_System 10 units 2 realworld-intersystems-iris 12 isc-tar 6 BlocksExplorer 8 iris-fhir-portal 15 npm-iris 12 iris-history-monitor 12 Dictionary comparison scheme of cache database 0 IRIS-REST-API-DATABASEMANAGER 13 ISC DEV 4 M-commands instead of Excel formulas in cells 2 appmsw-telestat 13 isc-apptools-lockdown 4 WebSocket Client JS with IRIS Native API as Docker Micro Server 5 Wsock-Embedded-Py 10 Terminal Multi-Line Command Editor 4 The adopted Bitmap 8 Using ZPM for Node.js 7 cmPurgeBackup 4 IRIS import manager 5 Questy 7 ➡️ Here you can find a detailed distribution of bonuses for each application ⬅️ This table is subject to change upon project improvements or if we missed something. Fill free to claim the bonus in the comments here or on discord. Stay tuned!
Announcement
Anastasia Dyubaylo · Aug 31, 2020

Winners of the InterSystems IRIS for Health FHIR Contest!

Hi Developers! The InterSystems IRIS for Health FHIR Contest is over. Thank you all for participating in our FHIR Competition! And now it's time to announce the winners! A storm of applause goes to these developers and their applications: 🏆 Experts Nomination - winners were determined by a specially selected jury: 🥇 1st place and $1,500 go to the iris-fhir-portal project by @Henrique 🥇 1st place and $1,500 go to the iris4health-fhir-analytics project by @José.Pereira 🥉 3rd place and $500 go to the fhir-chatbot project by @Renato.Banzai 🏆 Community Nomination - an application that received the most votes in total: 🥇 1st place and $1,000 go to the iris-fhir-portal project by @Henrique 🥈 2nd place and $500 go to the iris4health-fhir-analytics project by @José.Pereira Congratulations to all the participants! Thank you for your attention to the contest and the efforts you pay in this exciting coding competition! And what's next? A whole series of programming contests awaits InterSystems Developers! We will announce the next competition very soon – stay tuned! ➡️ More details in this post.
Announcement
Neal Assing · Aug 18, 2020

InterSystems Ensemble/Health Connect Developer Required

We have an immediate requirement for an experienced Intersystems Ensemble/Health Connect consultant to join our team with a good grounding in OO Programming, Healthcare Integration and at least 2 years experience with InterSystems Ensemble/Healthshare Health Connect The InterSystems Ensemble/Health Connect Consultant will be expected to go on to client sites, identify their needs and recommend how and what they should do in order to improve their business. From there you will then be expected to implement the services where required and provide documentation or training to compliment this. The successful candidate will have the ability to take ownership of technical projects, deal with any issues and see them through to completion. This will require excellent communication and management skills as well as a strong hands-on background in Healthcare Integration. This is an opportunity to play a key role in a growing business with real authority to make a difference along the way. Key skills 2 years InterSystems Ensemble/Healthshare Health Connect Experience BS or MS in Computer Science or equivalent; (Physics, Mathematics, Sciences) Software Development experience with Java, J2EE, JMS Ability to identify, analyze, discuss and confirm application/system requirements from customers and relevant stakeholders and produce detailed specifications Have sound understanding and experience with Information Technology and Systems and associated processes (development life cycle, testing processes, support, etc.) Good communication skills, (oral, verbal and written), with the ability to produce clear concise documentation, which is easily understood by developers and customers Experience with Application software testing and preparation of test plans and test data Knowledge of standard industry processes and methodologies (eg, for implementation, enhancement requests, development and product release, change control, customer support) Understand principles of Project Management and possession of core Project Management skills Proficient in Microsoft Office suite, Email, Internet Explorer as well as Unix A good understanding of the business issues within a specific domain such as banking, healthcare and retail Experience with other Middleware technologies (SOA & BPM) such as Mulesoft, SeeBeyond, JCAPS, WebMethods will be highly advantageous in this role Any experience working with MUMPS and Cache would also be beneficial Please apply using the following link: https://www.jobserve.com/gb/en/search-jobs-in-London,-London,-United-Kingdom/INTERSYSTEMS-ENSEMBLE-HEALTHSHARE-HEALTH-CONNECT-CONSULTANT-DEVELOPER-ENGINEER-D032A554C17488CB9E/ CALLS FROM CANVASSERS OR AGENCIES WILL NOT BE RESPONDED TO
Announcement
Evgeny Shvarov · Aug 13, 2020

Technology Bonuses for the InterSystems FHIR Programming Contest

Hi Developers! Here're the technology bonuses for the FHIR programming contest 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 See the details below. FHIR Server REST API usage - 1 point You get the bonus if you use the REST API endpoint of FHIR Server in InterSystems IRIS for health. You can take the IRIS-FHIR-Template which prepares the FHIR server during the docker image building. The documentation for FHIR API 4.0.1 could be found here. Learn more in InterSystems IRIS for Health documentation. FHIR SQL Schema usage - 1 point You can collect this technology bonus if you use FHIR SQL Schema in the SQL queries of your application. You can use this schema e.g. for making FHIR Analytics solution. Use HSFHIR_I0001_R for resources schema for full resources and HSFHIR_I0001_S schema to search with SQL for resources. Check the examples in the template. Healthcare standards transformations - 1 point InterSystems IRIS for Health contains Healthcare Interoperability modules which help to perform data transformations from different healthcare standards to FHIR and vice-versa. Make CDA to FHIR, HL7v2 to FHIR, or any other transformations in your application to collect this bonus. See the examples of HL7v2 to FHIR and CDA to FHIR transformations. Learn more in the documentation. Docker container usage - 1 point The application gets a 'Docker container' bonus if it uses InterSystems IRIS running in a docker container. The IRIS-FHIR-Template uses docker so you can collect this bonus if you build your solution using these templates. So! Feel free to ask any questions about using the listed technologies. Good luck in the competition! We analyzed the projects submitted for the contest and here is the matrix, which project gets what bonus: Name FHIR Server REST API usage FHIR SQL Schema usage Healthcare standards transformations Docker container usage iris-fhir-portal x x x iris4health-fhir-analytics x x x x fhir-chatbot x x QR-FHIR x x REST_API_with_FHIR_data_scheme x x Update: iris4health-fhir-analytics uses FHIR REST API too. iris-fhir-portal uses FHIR SQL Schema now. More details.
Article
Yuri Marx · Dec 22, 2020

InterSystems DC Past Contests - a successful journey

I compiled some data about past InterSystems DC constest. Some statistics: 64 applications (17% of all current apps into OEX - 377 apps in december/2020) 08 contests 29 developers See the summary: Contest Winner Apps Total Apps Benefits to the community InterSystems IRIS, Docker and ObjectScript BlocksExplorer, ISC DEV, sql-builder, isc-generate-db, declarative-objectscript 20 New open source utilities to maintain and develop SQL and admin Caché and IRIS InterSystems IRIS with REST API iris-history-monitor, Production Manager, JSON-Filter, simple-spellchecker 7 New utilities to admin and manage IRIS Interoperability productions InterSystems IRIS Native API iris-python-suite, WebSocket Client JS, ObjectScript Kernel 8 How to use IRIS with Python, Node.js and Java and new utilities to change data with IRIS Native API InterSystems IRIS AI iris-integratedml-monitor-example, iris-ml-suite, ESKLP, SAPPHIRE 4 How to use Python and AutoML to do IA and utilities to do IA with IRIS InterSystems IRIS for Health FHIR iris-fhir-portal, iris4health-fhir-analytics, fhir-chatbot 5 How to use IRIS do to FHIR healthcare advanced analytics and see operational FHIR records InterSystems Full Stack npm-iris, apptools-admin, realworld-intersystems-iris, restoreUI 9 Full stack samples using IRIS, Angular, HTML5 and database utilities InterSystems Interoperability Open API Client Gen, OCR Service, IRIS Interoperability Message Viewer 9 Utility to generate productions from Swagger, Advanced UI for productions and OCR support to IRIS using PEX InterSystems Analytics iris-analytics-notebook, website-analyzer, iris-analytics-package 4 Execute IRIS analysis sentences into notebooks, do NLP into website content and create your dashboard and cubes from a CSV in seconds. Developers: Aleksandr Kalinin, alex kosinets, Alexey Maslov, Alexey Nechaev, davi massaru teixeira muta, David Crawford, Dmitrii Kuznetsov, Dmitry Maslennikov, Gevorg Arutiunian, Henrique Gonçalves Dias, Henry Hamon Pereira, José Roberto Pereira Jr, Lorenzo Scalese, Maks Atygaev, Mark Erwin Villarina, Muni Ganesh, Nikita Mullin,Nikolay Soloviev, Oleh Dontsov, Oliver Wilms,Renato Banzai, Rob Tweed, Robert Cemper,Rubens Silva, Sergey Kamenev,Sergey Mikhailenko,Vasiliy Bondar, YURI MARX PEREIRA GOMES. The DC Team: @Evgeny.Shvarov, @Irina.Podmazko, @Olga.Zavrazhnova2637, @Anastasia.Dyubaylo and some ISC sales engineers like @Eduard.Lebedyuk supporting this fantastic team, was very nice to organize these fantastic contests. Amazing post! Thank you so much, Yuri! This is very pleasant! Thanks @Evgeny.Shvarov Wow! Yuri! Thaaaaank you! 😍 Our team is very touched by your feedback and this post! Yuri, thank you very much for such pleasant post!🤩 Thanks @Anastasia.Dyubaylo and @Iryna_Mologa Awesome summary! So great to see the numbers, all the names of developers, applications, benefits! 🤩 Thank you, Yuri, that's so valuable! Thanks @Olga.Zavrazhnova2637 !
Announcement
Evgeny Shvarov · Dec 25, 2020

Technology Bonuses for Projects of InterSystems Analytics Contest

Hi developers! We had a set of technology bonuses for the InterSystems Analytics contest. And here is how projects collected it: Project docker zpm IRIS BI IRIS NLP Integrated ML Real Data ISC Reports Total Nominal 1 1 1 1 1 1 2 8 iris-analytics-notebook 1 1 1 3 website-analyzer 1 1 1 1 4 dataking-server 1 1 2 iris-analytics-package 1 1 1 2 5 This table is subject to change upon project improvements or if we missed something. Fill free to claim the bonus in the comments here or on discord. Stay tuned! ZPM bonus is added for iris-analytics-package InterSystems Reports bonus is added for iris-analytics-package
Announcement
Evgeny Shvarov · Dec 18, 2020

Meet A New Voting Engine For InterSystems Contests!

Hi Developers, You asked for it – we did it! We are introducing a new voting engine and algorithm to InterSytems Contests which you can try with the current contest – starting next Monday! You can select 3 projects now: the 1st, the 2nd, and the 3rd place upon your decision. This is how it works for the Community leaderboard: Community Leaderboard: Place Points 1st 3 2nd 2 3rd 1 And there will be more complex math for Experts leaderboard, where different levels of experts have more "points" power: Experts Leaderboard: Level Place 1st 2nd 3rd VIP level in GM, Moderators, Product Managers 9 6 3 Expert level in Global Masters 6 4 2 Specialist level in Global Masters 3 2 1 Experts' votes will also contribute 3-2-1 points to the Community leaderboard too. This is how it works: To take part in the voting, you need: Sign in to Open Exchange – DC credentials will work. Make any valid contribution to Developer Community – answer or ask questions, write an article, comment on any post, and you'll see vote buttons available. We hope this new system will be fairer and you'll have the option to give your votes to more projects that you like. Comments, suggestions are welcome! Excellent news! This is a long-awaited improvement A GREAT improvement! Though a challenge to the voters: They have to make a decision !
Announcement
Anastasia Dyubaylo · Dec 21, 2020

Vote for the best app in the InterSystems Analytics Contest!

Hey Developers, This week is a voting week for the InterSystems Analytics Contest! So, it's time to give your vote to the best solutions built with InterSystems IRIS. 🔥 You decide: VOTING IS HERE 🔥 How to vote? Please meet the new voting engine and algorithm for the Experts and Community nomination: You can select 3 projects: the 1st, the 2nd, and the 3rd place upon your decision. This is how it works for the Community leaderboard: Community Leaderboard: Place Points 1st 3 2nd 2 3rd 1 And there will be more complex math for Experts leaderboard, where different levels of experts have more "points" power: Experts Leaderboard: Level Place 1st 2nd 3rd VIP level in GM, Moderators, Product Managers 9 6 3 Expert level in Global Masters 6 4 2 Specialist level in Global Masters 3 2 1 Experts' votes will also contribute 3-2-1 points to the Community leaderboard too. Voting Voting takes place on the Open Exchange Contest Page and you need to sign in to Open Exchange – you can do it with your DC account credentials. If you changed your mind, cancel the choice and give your vote to another application – you have 7 days to choose! Contest participants are allowed to fix the bugs and make improvements to their applications during the voting week, so don't miss and subscribe to application releases! ➡️ Also, please check out the new voting rules for InterSystems online contest here. Hey Developers, After the first day of the voting we have: Expert Nomination, Top 3 iris-analytics-notebook – 3 website-analyzer – 2 dataking-server – 1 ➡️ The leaderboard. Community Nomination, Top 3 iris-analytics-notebook – 14 website-analyzer – 11 iris-analytics-package – 11 ➡️ The leaderboard. Experts, we are waiting for your votes! 🔥 Participants, improve & promote your solutions! Developers! Our participants need your votes! 📢 Please follow our leaderboard and choose the application you like!✌️ Developers! Only 2 days left before the end of voting. Please check out the Contest Board and vote for the solutions you like! 👍🏼
Announcement
Anastasia Dyubaylo · Dec 28, 2020

Online Meetup with the InterSystems Analytics Contest Winners

Hi Community, We're pleased to invite you to the online meetup with the winners of the InterSystems Analytics Contest! Date & Time: Monday, January 4, 2021 – 10:00 EDT What awaits you at this virtual Meetup? Our winners' bios. Short demos on their applications. An open discussion about technologies being used, bonuses, questions. Plans for the next contests. Our speakers: @José.Pereira, Business Intelligence Developer at Shift Consultoria e Sistemas Ltda @Yuri.Gomes, Software Architect at YM Consulting @Henrique, System Management Specialist / Database Administrator, Sao Paulo Federal Court @Evgeny.Shvarov, InterSystems Developer Ecosystem Manager @Carmen.Logue, InterSystems Product Manager - Analytics and AI You will also have the opportunity to ask any questions to our developers in a special webinar chat. We will be happy to talk to you at our Virtual Meetup! ➡️ Join us using this link! Developers! InterSystems Product Manager @Carmen.Logue will also join our virtual meetup on Monday, Jan 4! 👉🏼 Register today! Hey Developers! The recording of this virtual meetup is already on InterSystems Developers YouTube: ⏯ Online Meetup with the InterSystems Analytics Contest Winners Big applause to all the speakers! 👏🏼 Great session, great apps
Article
Mihoko Iijima · Mar 5, 2021

[InterSystems IRIS for the first time] Interoperability: Message

**This article is a follow-up to this post**. In the previous article, [What is a Production?], we checked the production contents. We ran the sample code and checked the flowing messages' contents into the production on the Visual Trace page. This article will review the concept and the definition of the ** messages** used to send and receive data between components from the required development content for system integration. * Production[ previous post ] * Message * Components * Business Services * Business Processes * Business Operations Before creating a message, let's review the case study. > A company operates a shopping site and is changing the order of displaying product information to match the seasons.However, some items sell well regardless of the season, while others sell at unexpected times, which does not match the current display rule of changing the order.Therefore, we looked into the possibility of changing the order of display to match the day's temperature instead of the season. It became necessary to survey the temperature of the purchased products at that time. Since an external Web API is available for checking weather information, we plan to collect the weather information at the time of purchase and register it in the later review database. From this case, you can see the following: Information to be received from the outside is "purchased product name and name of the city."The information to be sent from IRIS to an external system to request processing is the "name of the city." The result of this process will be "weather information" for the city used as an input. ![image](/sites/default/files/inline/images/image1128.png) From this case study, we will implement the components needed for system integration. But before that, to run the components, you need to send and receive messages, which are relay data, and to use the messages, you need to define the message class. A message class is designed to consider **what information (i.e., messages) should be sent and received to make the component to run.** In this process, we need the following two types of information: A) The name of the city to send to an external Web API to obtain weather information. B) weather information and purchased product name for recording in the DB. The name of the city in A) and the **purchased product name** in B) can be included in the input information to IRIS. The weather information in B) can be retrieved from the response information of an external Web API. Here is a diagram that considers what information would be needed to send and receive each component from the available data. The first line of the ** yellow balloons** describes the message class name, and the second line onwards states what to set for the property. ![image](/sites/default/files/inline/images/image1068jp.png) In the sample code, we have the following three types of **messages**: Start.Request(Request message)It is used to send the name of the purchased product and the city to acquire the weather information. Start.Response(Response message)They are used to return the results of operations (weather information) to obtain weather information. Start.InsertRequest(Request message) It is used to send the weather information and the name of the purchased products for DB registration. The messages are specified in a superclass, Request message, and Response message are derived from **Ens.Request** and **Ens.Response**, respectively. The following is an example of the definition of the Request message Start.Request. ![](https://jp.community.intersystems.com/sites/default/files/inline/images/images/image(1069).png) Below is an example of the definition of the Response message. ![](https://community.intersystems.com/sites/default/files/inline/images/images/image(1075).png) The Request message, Start.InsertRequest to be sent with the DB registration request is as follows: (We plan to set the WeatherInfo property to the information in Start.Response, which will be returned after the weather information is obtained.) ![](https://jp.community.intersystems.com/sites/default/files/inline/images/images/image(1076).png) If you want to create it in Studio, you can also use the Message Creation Wizard. Reference) Steps to create a response class in Studio The key point so far A message class is designed with the idea of "what information (i.e., messages) should be sent and received" to make the component RUN. Once the message class (which is the information to drive each component) is implemented, the next step is to create a class for the component.