Clear filter
Question
Yi Han · Mar 4, 2021
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
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
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
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
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
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
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
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
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
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
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
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
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
**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.

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.

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.
.png)
Below is an example of the definition of the Response message.
.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.)
.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.
Question
Ponnumani Gurusamy · May 4, 2020
Hi Team,
We weren't able to start the InterSystems cache server. I attached error screenshot and console log details on below.
Console log error:
Retry CLNDMN job start after timeout with last job error = <UNKNOWN ERROR>.JOBTRACE: Create job indirect, rtnref = START^CLNDMN.JOBTRACE: Create job by control, rtnref = START^CLNDMN, pid = 6944.JOBTRACE: Timed out waiting for child (6944) to appear in PIDTAB.Error: ERROR #5001: Cannot start CLNDMN job - Shutting down the system
Please guide me, how we resolve this issue.
Thanks & Regards,
Ponnumani G. First, check if the Caché SERVICE (in win sense) gets started as account With enough privileges
Next, check that the installation directory and all sub dir are accessible with all right from this account
Eventually, consider a reinstall / Update with enough ADMINISTRATOR rights
We tried with administrator credential also. But we are facing this same issue.