Clear filter
Announcement
Evgeny Shvarov · Oct 4, 2021
Hi Developers!
Here're the technology bonuses for the InterSystems Interoperability Contest 2021 that will give you extra points in the voting:
Business Process BPL or Business Rule DTL Usage
Custom Interoperability Adapter Usage
Production EXtension(PEX) Java or .NET usage
Workflow Engine usage
Docker container usage
ZPM Package deployment
Online Demo
Code Quality pass
Article on Developer Community
Video on YouTube
See the details below.
Business Process BPL or Business Rules Usage - 3 point
One of the key features of IRIS Interoperability Productions are business processes, which could be described by BPL (Business Process Language).
Learn more on Business Processes in documentation.
Business Rules it's a no-code/low-code approach to manage the processing logic of the interoperability production. In InterSystems IRIS you can create a business rule which you can create visually or via the ObjectScript representation.
You can collect the Business Process/Business Rule bonus if you create and use the business process or business rule in your interoperability production.
Business Rule Example
Learn more on Business Rules in documentation.
Custom Interoperability Adapter Usage - 2 point
InterSystems Interoperability production can contain inbound or Outbound adapters which are being used to communicate with external systems by business services and operations of the production. You can use out-of-the-box adapters (like File, or Email) or develop your own.
You get the bonus if you develop your own custom inbound or outbound adapter and use it in your production.
Example of an adapter.
Learn more on adapters.
Production EXtension (PEX) Usage - 4 points
PEX is a Java or .NET extension of Interoperability productions.
You get this bonus if you use PEX with JAVA or .NET in your interoperability production.
PEX Demo.
Learn more on PEX in Documentation.
Workflow Engine Usage - 2 point
Workflow Engine is a part of IRIS Interoperability which could be used to automate the distribution of tasks among users.
You get this bonus if you use include the usage of Workflow Engine in your interoperability production.
Learn more on Workflow in Documentation.
There are Community modules WorkflowAPI and WorkflowUI-ngx which provide a nice UI layer on Angular for the Workflow engine.
Docker container usage - 2 points
The application gets a 'Docker container' bonus if it uses InterSystems IRIS running in a docker container. Here is the simplest template to start from.
ZPM Package deployment - 2 points
You can collect the bonus if you build and publish the ZPM(ObjectScript Package Manager) package for your Full-Stack application so it could be deployed with:
zpm "install your-multi-model-solution"
command on IRIS with ZPM client installed.
ZPM client. Documentation.
Online Demo of your project - 3 pointsCollect 3 more bonus points if you provision your project to the cloud as an online demo. You can do it on your own or you can use this template - here is an Example. Here is the video on how to use it.
Code quality pass with zero bugs - 1 point
Include the code quality Github action for code static control and make it show 0 bugs for ObjectScript.
Article on Developer Community - 2 points
Post an article on Developer Community that describes the features of your project. Collect 2 points for each article. Translations to different languages work too.
Video on YouTube - 3 points
Make the Youtube video that demonstrates your product in action and collect 3 bonus points per each. Example.
The list of bonuses is subject to change. Stay tuned!
Good luck in the competition! can we add a China video website to add since China developers since we cannot access Youtube? If I translate my own article count as 2 articles!? Just kidding
Announcement
Anastasia Dyubaylo · Nov 11, 2021
Hey Developers,
Don't miss our new video on InterSystems Developers YouTube:
⏯ Working with FHIR Profiles in IRIS for Health
Learn how a FHIR server built with InterSystems IRIS for Health can support multiple FHIR profiles, including those available in the US Core Implementation Guide and other published FHIR packages. FHIR profiles and other conformance resources allow you to adapt FHIR for a specific purpose or environment.
🗣Presenter: @Kurt.Dawn , Technical Writer, InterSystems FHIR team
Subscribe and enjoy watching!
Article
Yuri Marx · Nov 12, 2021
The TOGAF is the The Open Group Architecture Framework. It provides an approach for planning, design, implement, deploy and govern your EA (Enterprise Architecture) projects.
The TOGAF has a concept called Building Block. It is any element that can be used, reused a executed to deliver value and new functions to the business.
In the picture above, I present to you the main IRIS building blocks to create fantastic apps.
To learn more about TOGAF and building blocks, see https://www.opengroup.org/togaf. Hi Yuri and DC members
As you know I have challenged the DC members to come up with cheat sheets for IRIS and this is a perfect example of what I was hoping to see from DC members. With your permission, I would like to include it in my collection of IRIS Cheat/Information sheets. For other DC members reading this post and there is an aspect of IRIS that you are particularly familiar with or passionate about then have a go and see if you can come up with a similar informative diagram. Typically the cheat/information sheets are one-two page long. When it comes to a language explanation then you would typically create a page on commands, another on operators and so on. Let your inner artist guide your layout and colour scheme. Once I have built up a substantial collection of IRIS topics I'll see if Olga, Evgeny and Anastasia and the ISC Experts will vote on the best layout and all cheat/information sheets will be modified to conform to that look. Who knows, they may even reward the winner. Bear in mind that ISC have a certain style, colour scheme and logo's and this should be taken into consideration/
Nigel
P.S. Sorry Yuri for high jacking your Article ro further my personal mission. Thanks Nigel. If you want, send me an email - yurimarx@gmail.com, to get the editable diagram file.
Article
Yuri Marx · Jan 5, 2022
According to the WHO, The top global causes of death, in order of total number of lives lost, are associated with three broad topics (source: https://www.who.int/news-room/fact-sheets/detail/the-top-10-causes-of-death):
Cardiovascular (ischaemic heart disease, stroke),
Respiratory (chronic obstructive pulmonary disease, lower respiratory infections) and
Neonatal conditions – which include birth asphyxia and birth trauma, neonatal sepsis and infections, and preterm birth complications.
I created an application that's provides real data (without personal data) for some of these top 10 scenarios of diseases identified by WHO. The datasets for this application are:
Diabetes dataset: data to predict diabetes diagnosis
Heart Disease: data to predict heart disease
Kidney Disease: data to predict kidney disease
Breast Cancer: data to predict breast cancer
Maternal Health Risk: data to predict maternal health risk level
To download and install the application go to https://openexchange.intersystems.com/package/Health-Dataset
Follow these instructions:
1. Clone/git pull the repo into any local directory
$ git clone https://github.com/yurimarx/automl-heart.git
2. Open a Docker terminal in this directory and run:
$ docker-compose build
3. Run the IRIS container:
$ docker-compose up -d
4. Do a Select to the HeartDisease dataset:
SELECT
age, bp, chestPainType, cholesterol, ekgResults, exerciseAngina, fbsOver120, heartDisease, maxHr, numberOfVesselsFluro, sex, slopeOfSt, stDepression, thallium
FROM dc_data_health.HeartDisease
5. Do a Select to the Kidney Disease dataset:
SELECT
age, al, ane, appet, ba, bgr, bp, bu, cad, classification, dm, hemo, htn, pc, pcc, pcv, pe, pot, rbc, rc, sc, sg, sod, su, wc
FROM dc_data_health.KidneyDisease
6. Do a Select to the Diabetes dataset:
SELECT
Outcome, age, bloodpressure, bmi, diabetespedigree, glucose, insulin, pregnancies, skinthickness
FROM dc_data_health.Diabetes
7. Do a Select to the Breast Cancer dataset:
SELECT
areamean, arease, areaworst, compactnessmean, compactnessse, compactnessworst, concavepointsmean, concavepointsse, concavepointsworst, concavitymean, concavityse, concavityworst, diagnosis, fractaldimensionmean, fractaldimensionse, fractaldimensionworst, perimetermean, perimeterse, perimeterworst, radiusmean, radiusse, radiusworst, smoothnessmean, smoothnessse, smoothnessworst, symmetrymean, symmetryse, symmetryworst, texturemean, texturese, textureworst
FROM dc_data_health.BreastCancer
8. Do a Select to the Maternal Health Risk dataset:
SELECT
BS, BodyTemp, DiastolicBP, HeartRate, RiskLevel, SystolicBP, age
FROM dc_data_health.MaternalHealthRisk
These datasets can be used into AutoML/Machine Learning applications to support breast cancer, heart disease, kidney disease and diabetes diagnostics (support only, because human doctor diagnosis is mandatory).
Enjoy! Hi Yuri,
Your video is now on InterSystems Developers YouTube:
⏯ Health Datasets using InterSystems IRIS
Have a good weekend) Great! Thanks!
Article
Anastasia Dyubaylo · Jun 30, 2021
Hi developers,
In this post, we would like to tell you how to take the most out of the Developer Community, to learn as much as you can from the InterSystems experts on the technology!
Pay attention to these steps to become an advanced user of our community!
Follow the members you are interested in
You can follow any member of the Community if you like the content they publish. Just click the "Follow" button on the right sidebar of any member and you will be notified by email when that member publishes a post (article/question/announcement, etc.) on the Community.
Also, in the top menu of the homepage, you can click on "Members" and search for a specific person or members with more views, or more likes... and start following them.
Follow the tags you are interested in
All the tags used to describe the posts on the Community can be found under the section "Tags" on the DC homepage:
In the DC Tag Tree, you can find topics you are interested in and follow related tags. Just select a tag and click on the "Follow" button next to it. When you follow any tag, you receive an email with all posts using that tag.
Tags we suggested to start from: Best practices | Tips and tricks | Beginner | Tutorial.
Follow the posts you are interested in
Following a post, you will receive (by email) all updates to that post, such as new comments, or if a second part is published, or any other activity related to the post you are following.
To follow a post, you just need to click the bell icon below each post:
-> How do I know which members, tags, and posts I'm following?
To know the members, tags, and posts that you follow, you just need to go to your account, in the upper right-hand corner:
and then go to "Subscriptions" in the left column:
At the bottom of this page, you can see and customize your subscriptions across three tabs – each showing the members, tags, and posts you are following. For example, the screenshots below show that the user is following some tags and DC members:
Note: If you want to follow members or tags in different languages, you need to switch your subscription settings to the language you are interested in.
Add posts to your bookmarks
Bookmark the post you like so you can access the post quickly and easily later.
If you like a post (article, question or announcement) and want to save it for later, you can add it to your bookmarks. This way, you can access the post quickly and easily and read it when you want.
To add a post to your bookmarks, you just need to click the star icon below each post:
To see all your bookmarks, go to your account and then to "Bookmarks" in the left column:
So, developers,
Please use all our DC features that can help you become an expert in InterSystems technologies!
And you're very welcome to submit other ways and advice on how to learn InterSystems Technology on Developer Community in the comments below. Thanks, Nice information to learn on InterSystems Developer Community Great recommendations and very helpful with the screenshots - thank you @Anastasia.Dyubaylo :) Thanks, Ben!
We're planning to make a series of such articles. Stay tuned! ;)
Article
Eduard Lebedyuk · Mar 5, 2022
Function as a service (FaaS) is a category of cloud computing services that provides a platform allowing customers to develop, run, and manage application functionalities without the complexity of building and maintaining the infrastructure typically associated with developing and launching an app. Building an application following this model is one way of achieving a "serverless" architecture, and is typically used when building microservices applications.
Wikipedia
FaaS is an extremely popular approach to running workloads in the cloud, allowing developers to focus on writing code.
This article will show you how to deploy InterSystems IRIS methods in a FaaS way.
Install Kubernetes
First of all, install Kubernetes 1.16. There are a lot of guides available so that I won't be copying them here, but I'm using minicube. With minicube to run kubernetes, it's enough to execute this command:
minikube start --kubernetes-version=v1.16.1
Install kubeless
Next, we will install kubeless. kubeless is a Kubernetes-native serverless framework that lets you deploy small bits of code without worrying about the underlying infrastructure plumbing. It leverages Kubernetes resources to provide auto-scaling, API routing, monitoring, troubleshooting, and more.
kubectl create ns kubeless
kubectl create -f https://github.com/kubeless/kubeless/releases/download/v1.0.8/kubeless-v1.0.8.yaml
kubectl get pods -n kubeless
Output should be something like this:
NAME READY STATUS RESTARTS AGEkubeless-controller-manager-666ffb749-26vhh 3/3 Running 0 83s
You also need to install a kubeless client (on the same instance you have kubectl). You can get it here. Installation on Linux is as simple as:
sudo install kubeless /usr/local/bin/kubeless
Test kubeless
First, let's deploy a simple Python function to check that kubeless works.
Create test.py:
def hello(event, context):
return event['data']
To read more about function environment check this doc, generally function accepts two arguments - event and context with this data:
event:
data: # Event data
foo: "bar" # The data is parsed as JSON when required
event-id: "2ebb072eb24264f55b3fff" # Event ID
event-type: "application/json" # Event content type
event-time: "2009-11-10 23:00:00 +0000 UTC" # Timestamp of the event source
event-namespace: "kafkatriggers.kubeless.io" # Event emitter
extensions: # Optional parameters
request: ... # Reference to the request received
response: ... # Reference to the response to send
# (specific properties will depend on the function language)
context:
function-name: "pubsub-nodejs"
timeout: "180"
runtime: "nodejs6"
memory-limit: "128M"
Now we can deploy our hello function by specifying our file with a function and a runtime:
kubeless function deploy hello --runtime python3.7 --from-file test.py --handler test.hello
kubeless function ls hello
And let's test it:
kubeless function call hello --data 'Hello world!'
You should receive Hello World! as an answer.
Add IRIS config
Next we need to add an InterSystems IRIS function handler, to do that open kubeless config for edit:
kubeless get-server-config
kubectl get -n kubeless configmaps -o yaml > configmaps.yaml
kubectl edit -n kubeless configmaps
Add this entry to runtime-images array and save:
{"ID": "iris","depName": "","fileNameSuffix": ".cls","versions": [{"images": [{"image": "eduard93/kubeless-iris-runtime:latest","phase": "runtime"}],"name": "iris2022.1","version": "2022.1"}]}
Restart kubeless controller for the changes to take effect.
kubectl delete pod -n kubeless -l kubeless=controller
Build IRIS function CRD and publish it
Now let's write our first function in InterSystems IRIS:
Class User.Test {
ClassMethod hi(event, context) As %Status
{
if $isObject(event) {
write event.Text + event.Text
} else {
write "HELLO FROM IRIS"
}
quit $$$OK
}
}
Next, we need to build a function CRD:
Here's our template:
function.yaml
apiVersion: kubeless.io/v1beta1
kind: Function
metadata:
name: !name!
namespace: default
spec:
runtime: iris2022.1
timeout: "180"
handler: !handler!
deps: ""
function-content-type: text
deployment:
spec:
template:
spec:
securityContext:
runAsUser: 51773
runAsGroup: 51773
function: |
And we need to fill:
name: function name (for kubeless)
handler: class.name_method (for InterSystems IRIS)
function body: add at the end (don't forget tabs!)
So our CRD looks like this:
function_demo.yaml
apiVersion: kubeless.io/v1beta1
kind: Function
metadata:
name: iris-demo
namespace: default
spec:
runtime: iris2022.1
timeout: "180"
handler: User_Test.hi
deps: ""
function-content-type: text
deployment:
spec:
template:
spec:
securityContext:
runAsUser: 51773
runAsGroup: 51773
function: |
Class User.Test {
ClassMethod hi(event, context) As %Status
{
if $isObject(event) {
write event.Text + event.Text
} else {
write "HELLO FROM IRIS"
}
quit $$$OK
}
}
This can be easily automated. On Linux execute:
sed 's/!name!/iris-demo/; s/!handler!/User_Test.hi/' function.yaml > function_demo.yaml
sed 's/^/ /' User.Test.cls >> function_demo.yaml
And on Windows (PowerShell):
Get-Content function.yaml | ForEach-Object { $_ -replace "!handler!", "User_Test.hi" -replace "!name!", "iris-demo" } | Set-Content function_demo.yaml
" " + [string]((Get-Content User.Test.cls) -join "`r`n ") | Add-Content function_demo.yaml
Now we need to publish our CRD in kubeless:
kubectl apply -f function_demo.yaml
Test IRIS function
First, let's see that the function is deployed and ready (can take a few minutes the first time):
kubeless function ls
And now call it:
kubeless function call iris-demo --data '{"Text":123}'
If you're on Windows, call the function like this (same for all other calls with escaped double quotes):
kubeless function call iris-demo --data '{\"Text\":123}'
Anyway, the response should be 456 since 123 is a number.
HTTP access
kubeless also offers HTTP access. To test this, use the kubectl proxy command:
kubectl proxy -p 8081
Next, send this request using your preferred REST API client:
GET http://localhost:8081/api/v1/namespaces/default/services/iris-demo:http-function-port/proxy/
{"Text":111}
Here's how it looks like in Postman:
Next, let's publish it on the internet.
There are two approaches. Preferably configure ingress as described here.
Additionally you can patch function service:
kubectl get svc
kubectl patch svc iris-demo -p '{"spec": {"type": "LoadBalancer"}}'
kubectl get svc
Clean up
To remove a deployed function call:
kubectl delete -f function_demo.yaml
Conclusion
While this is undoubtedly a proof-of-concept and not a production-grade solution, this approach demonstrates that it's possible to run InterSystems IRIS workloads using the serverless, FaaS approach.
Links
Minicube
Kubeless
InterSystems IRIS runtime
Great article !
Is it possible to use a custom image from a local docker registry with Kubeless ? Yes, it's possible. fantastic @Eduard.Lebedyuk ! Thanks, Ron!
Announcement
Evgeny Shvarov · Sep 10, 2021
Hi Developers!
We had a set of technology bonuses for the InterSystems IRIS Analytics contest.
And here is how projects collected it:
Project
AtScale
PowerBI
Tableau
Logi
IRIS BI
IRIS NLP
Docker
ZPM
Unit Testing
Online Demo
Article on DC
Video on YouTube
Total Bonus
Nominal
4
3
3
3
3
3
2
2
2
3
2
3
33
iris-analytics-datastudio
3
3
3
9
promjet-stats
4
3
3
3
2
3
18
pop-song-analytics
3
2
5
Analytics OKR
3
2
2
2
9
iris-analytics-for-money
3
2
5
AlertDashboard
3
3
We can discuss bonuses here or on the Discord channel
Announcement
Thomas Dyar · Jan 24, 2022
The Data Platforms team is very pleased to announce the 2021.2 release of InterSystems IRIS Data Platform, InterSystems IRIS for Health and HealthShare Health Connect, which are now Generally Available (GA) to our customers and partners.
Release Highlights
InterSystems IRIS Data Platform 2021.2 makes it even easier to develop, deploy and manage augmented applications and business processes that bridge data and application silos. It has many new capabilities including:
Enhancements for application and interface developers, including:
Embedded Python
Interoperability Productions in Python
Updates to Visual Studio Code ObjectScript Extension Pack
New Business Services and operations added allowing users to set and run SQL query with minimal custom coding
Enhancements for Analytics and AI, including:
New SQL LOAD command efficiently loads CSV and JDBC source data into tables
Enhancements to Adaptive Analytics
Enhancements for Cloud and Operations tasks, including:
New Cloud Connectors make it simple to access and use cloud services within InterSystems IRIS applications
IKO enhancements improve manageability of Kubernetes resources
Enhancements for database and system administrators, including:
Online Shard Rebalancing automates distribution of data across nodes without interrupting operations
Adaptive SQL engine uses fast block sampling and automation to collect advanced table statistics and leverages runtime information for improved query planning
Storage needs for InterSystems IRIS are reduced with new stream and journal file compression settings
Support for TLS 1.3 and OpenSSL 1.1.1, using system-provided libraries
New ^TRACE utility reports detailed process statistics such as cache hits and reads
More details on all these features can be found in the product documentation:
InterSystems IRIS 2021.2 documentation and release notes
InterSystems IRIS for Health 2021.2 documentation and release notes
HealthShare Health Connect 2021.2 documentation and release notes
How to get the software
InterSystems IRIS 2021.2 is a Continuous Delivery (CD) release, which now comes with classic installation packages for all supported platforms, as well as container images in OCI (Open Container Initiative) a.k.a. Docker container format. Container images are available for OCI compliant run-time engines for Linux x86-64 and Linux ARM64, as detailed in the Supported Platforms document.
Full installation packages for each product are available from the WRC's product download site for CD releases. Using the "Custom" installation option enables users to pick the options they need, such as InterSystems Studio and IntegratedML, to right-size their installation footprint.
Container images for the Enterprise Edition, Community Edition and all corresponding components are available from the InterSystems Container Registry using the following commands:
docker pull containers.intersystems.com/intersystems/iris:2021.2.0.651.0
docker pull containers.intersystems.com/intersystems/iris-ml:2021.2.0.651.0
docker pull containers.intersystems.com/intersystems/irishealth:2021.2.0.651.0
docker pull containers.intersystems.com/intersystems/irishealth-ml:2021.2.0.651.0
For a full list of the available images, please refer to the ICR documentation.
Alternatively, tarball versions of all container images are available via the WRC's product download site for CD containers.
Our corresponding listings on the main cloud marketplaces will be updated in the next few days.
Sharing your experiences
We are excited to see this version now hitting the GA milestone and eager to hear your experiences with the new software. Please don't hesitate to get in touch through your account team or the Developer Community with any comments on the technology or the use cases you're addressing with it.
For selected new capabilities and products, we've set up Early Access Programs to allow our users to evaluate software before it gets released. Through these focused initiatives, we can learn from our target audience and ensure the new product fulfills their needs when it gets released. Please reach out through your account team or watch the Developer Community if you're interested in participating in any of these. Please note that 2021.2 is also available via the InterSystems Evaluation Service: https://evaluation.InterSystems.com. If you are a supported customer you can request evaluation keys or get full/community edition kits/containers. Prospects can get Community Edition kits/containers (see https://community.intersystems.com/post/introducing-evaluation-service-community-edition-downloads). And images with ZPM package manager 0.3.2 are available accordingly:
intersystemsdc/iris-community:2021.2.0.651.0-zpm
intersystemsdc/iris-ml-community:2021.2.0.651.0-zpm
intersystemsdc/irishealth-community:2021.2.0.651.0-zpm
intersystemsdc/irishealth-ml-community:2021.2.0.651.0-zpm
intersystemsdc/iris-community:2021.1.0.215.3-zpm
intersystemsdc/irishealth-community:2021.1.0.215.3-zpm
intersystemsdc/irishealth-ml-community:2021.1.0.215.3-zpm
intersystemsdc/irishealth-community:2021.1.0.215.3-zpm
And to launch IRIS do:
docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/iris-community:2021.2.0.651.0-zpm
docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/iris-ml-community:2021.2.0.651.0-zpm
docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/iris-community:2021.2.0.651.0-zpm
docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/irishealth-community:2021.2.0.651.0-zpm
docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/irishealth-ml-community:2021.2.0.651.0-zpm
docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/irishealth-community:2021.2.0.651.0-zpm
And for terminal do:
docker exec -it my-iris iris session IRIS
and to start the control panel:
http://localhost:9092/csp/sys/UtilHome.csp
To stop and destroy container do:
docker stop my-iris
And the FROM clause in dockerfile can look like:
FROM intersystemsdc/iris-community:2021.2.0.651.0-zpm
Or to take the latest image:
FROM intersystemsdc/iris-community Are there any news on docker hub publication?
docker pull store/intersystems/iris-community:2021.2.0.649.0
Error response from daemon: manifest for store/intersystems/iris-community:2021.2.0.649.0 not found: manifest unknown: manifest unknown InterSystems IRIS 2021.2 is now available on docker hub, you can retry that command.
However, due to Docker changing the terms of licensing, InterSystems is phasing out its Community version listings on docker hub after January 31, 2022.
In the future, we may have a listing there, but that is not finalized.
Currently, as well as in the future, these images can be obtained with docker CLI via:
docker pull containers.intersystems.com/intersystems/iris-community:2021.2.0.651.0
Note that containers.intersystems.com does not require authentication when pulling Community Edition (CE) of InterSystems IRIS (see InterSystems Container Registry). Stay tuned for an announcement about our plans for docker hub, and please let us know if you have concerns or questions! docker pull containers.intersystems.com/intersystemscorp/iris-community:2021.2.0.649.0
is probably
docker pull containers.intersystems.com/intersystems/iris-community:2021.2.0.649.0
Interesting news. Question: as access to containers.intersystems.com requires a WRC account, how do prospects/new users/people without WRC access can get community version of InterSystems IRIS? Thanks, Eduard! I updated the above comment to fix the typo!
The Community Edition (CE) of InterSystems IRIS are available from containters.intersystems.com without credentials. This should work for anyone:
docker pull containers.intersystems.com/intersystems/iris-ml-community:2021.2.0.651.0 That's good to hear. UPDATE! We discovered a defect in the Windows builds of InterSystems IRIS 2021.2, and have now updated those images on the WRC download site for Continuous Delivery releases. The new build number for the Windows kits is 651. Please change all the 649's in this to 651 - 2021.2 was republished Updated to 651, thanks, @Jeffrey.Fried!
Also, we have the latest tag for ZPM images, so this will take the latest:
FROM intersystemsdc/iris-community:latest
Or just like this:
FROM intersystemsdc/iris-community Hi Ben.
For some reason, only IRIS 2021.1CE is available for Windows, although IRIS 2021.2CE is available for many other operating systems, such as MacOSX.
Is it possible for Windows to update the version to 2021.2 too? @Vitaliy.Serdtsev - thank you very much for bringing this to our attention! There was a small issue resulting in the version listing being out of date. This has been corrected and you should be able to get access to 2021.2 for Windows now (please let me know if you still have issues). Thanks for reaching out! Now everything is OK, thanks. Now on evaluation.intersystems.com for Windows/MacOSX/Container allows to download the version of IRIS 2020.1CE, and for the rest - IRIS 2021.2CE.
What happened and when will the problem with downloading the latest version disappear once and for all? This is a bug. We'll look into it. Thank you for bringing it to our attention. @Vitaliy.Serdtsev2149 thank you for pointing this out. We've fixed the issue; it was actually a separate root cause from before. Now everything is OK, thanks.
Announcement
Anastasia Dyubaylo · Jun 8, 2021
Hi Community,
We're pleased to invite you to the online meetup with the winners of the InterSystems FHIR Accelerator contest!
Date & Time: Friday, June 11, 2021 – 11:00 EDT
What awaits you at this Virtual Meetup?
Our winners' bios.
Short demos on their applications.
An open discussion about technologies being used. Q&A. Plans for the next contests.
Our speakers:
@Dmitry.Maslennikov, Co-founder, CTO and Developer Advocate, CaretDev Corp
@José.Pereira, Business Intelligence Developer at Shift Consultoria e Sistemas Ltda
@Henrique, System Management Specialist / Database Administrator, Sao Paulo Federal Court
@Evgeny.Shvarov, InterSystems Developer Ecosystem Manager
@Patrick.Jamieson3621, InterSystems Product Manager - Health Informatics Platform
@Regilo.Souza, InterSystems Product Owner
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!
➡️ REGISTER TODAY! Hey Developers,
Watch the recording of the meetup on InterSystems Developers YouTube:
⏯ Online Meetup with the InterSystems FHIR Accelerator Contest Winners
Big applause to all the speakers! 👏🏼
Discussion
Evgeny Shvarov · Jul 20, 2021
Hi folks!
How do you edit data in IRIS or Caché? What do you use?
Change globals directly via Management Portal?
Change data using SQL?
Use your favorite dev tool? Which one?
Crafted your own?
Share your experience, please?
Hi,
we are updating the data using an update query via the management portal. Globals need to change then we are using the terminal to change it. Recently, started to Visual studio code extension of SQL Tools. but frequently check and update the above would not work out. each time change query parameters. so we created a zen page to do the CRUD operations to the particular table. I see, thank you @Karunanithi.Veerarajan I don't have a real favorite.
- for similar changes in multiple records, I use SQL in SMP, rarely also $system.SQL.Shell() from terminal- for single changes, I use Global Edit in SMP and direct access in terminal equally- for special objects I often write my class related customized edit method I believe the best answer is: It depends.Depends on the data architecture of the original project, whether the data structure is GLOBAL, relative SQL or Objects.
For example, in my current project, I have data in objects originating from Ensemble and metrics and monitoring data in relational tables. The native part of Ensemble is never subject to change, but the part concerning relational tables sometimes needs editing. When it happens I prefer to use third party SQL manager like DBeaver.
In another project, fully specified in Globals, the preferred way of editing large amounts of data was to write scripts in ObjectScript.
Edit globals directly, only in very specific situations. And keep in mind that, if the global is referring to an SQL table, there is always the risk of corrupting an index. Hi. The team I work in has been supporting old MUMPS and then Cache systems for many years, and have two rules for fixing data on live systems:
1. Never write a kill statement directly at the command line.It's quick and convenient, but we've seen many occasions where big chunks of, or, before the database parameter to stop it, whole globals were removed by accident. Cue major panics, hours of restore and de-journal. etc.
2. Don't write SQL updates directly (SMP, command line, etc).
Because if you get the WHERE wrong then all rows in a table suddenly vanish or have the same value. :-)
So we use a local command line tool for global amendments that uses the old %G style selection search to display one node at a time, so that you can then edit the data, or kill (with a warning first if there are sub nodes you may have forgotten about).
We also have a local command line tool for SQL/objects. This takes in a table name and WHERE clause, and only allows editing and deleting when the query finds only one row.
Anything more than a few nodes/rows and we usually write a proper bit of script on our dev server, and get it checked and tested before running in live. Better safe than sorry. What a thrilling and scary story, Mike!
I need this editing feature for development purposes only. Thanks Marcio, I agree Why such a complicated question, I wonder. Can anyone answer immediately the "Best Tool" for any given job (other than a salesman, of course)?
I'm a fan of writing my own SQL commands on the SQL Browser (it gives me a sense of power that comes from using the raw tools some deity provided for me) but hey, if it's as simple as editing a bunch of records, well my choice is Dbeaver Community Edition (through JDBC) but it's not the only one based on java (that's why JDBC driver is needed). The one I downloaded came with its own OpenJDK (but it's not full java as some .dll, .dylib or .so libraries are included). It seems you can even install it as some Eclipse plugin if you want! I haven't tested this one yet though.
Well it's simple and you can use the jar that's in the <instance-dir>/dev/java/lib/JDK11/intersystems-jdbc-<version>.jar. It offers to download one as you establish your first connection to an "InterSystems IRIS" or "Cache" database, check this Dbeaver officially supports ....
It has a nice "view data" for a table and allows to edit in a grid (you have to "save" in order to trigger all the UPDATE commands necessary or see them prior to submitting/saving). It's filterable so you see just a range of data you want to edit as in "ID between 40 and 50". If you have some primary key (other than the ID column which is hidden to the beaver but you still can use it to filter data) then the updates will use it no questions asked, otherwise you can use all the columns for the updates but you know how that can have unwanted repercussions.
It also has the usual import and export (using csv files with mapped columns, just don't use any identity columns!) and the community edition is supposed to be under an apache license. If you really like of course you can buy some license that gives you a full load of functionalities but if it's just to edit some records, I'd stick to the community edition. Thanks, Robert! For those who are not aware - SMP stands for System Management Portal - the web UI to manage IRIS. Thanks, Robert! For those who are not aware - SMP stands for System Management Portal - the web UI to manage IRIS. Thanks, Pablo! Yes, I like DBeaver too. RESTForms, duh.
Question
prashanth ponugoti · Nov 27, 2021
Hi All,
We have a requirement for one webpage that should be access in our VPN with out authentication. If it asks user name password that also fine.
This page should be a dashboard for the ensemble health monitoring. Support Team seating Area we have big SMART Monitor which always shows this webpage. Support engineers keep on eye on this monitor, if it shows action required then . they will act upon immediately. Expecting some widgets like
Queue Status
Inbound application status
Out bound operations status
Database statistics
Mirror Information
etc.
I can see some widgets in management portal. But We need separate web application page.
I am developing one solution for my support team requirements. Here I am going to Propose Solution.
Ensemble Integration:
Create Customized Business Service to poll Cache to get the required details and send to Business Process
Create Customised Business Process to check the configured business rules and invoke Business Operation.
Create a Business Operation to make a POST call for to my Rest Service.
Rest Service:
This Service Parse JSON Payload and insert or update into respective table in MYSQL database instance
React Web Page:
This UI will show the DB summary in respective widgets
Please advice me any alternative Idea? Is there any tolls available for this?
Thanks,
Prashanth
It's better to look at something like Grafana. Here are a few articles about using it. Big article with many details and my article with direct connection to IRIS
If you need some help with the development and configuration of such monitoring, I can help with it. Another solution can be with SAM :
https://docs.intersystems.com/components/csp/docbook/DocBook.UI.Page.cls?KEY=ASAM
https://community.intersystems.com/post/new-video-viewing-customizing-metrics-sam
You can also enable interoperability metrics (only on IRIS 2021.1+) with :
// Enable Intero metrics for SAM
zw ##class(Ens.Util.Statistics).EnableSAMForNamespace()
zw ##class(Ens.Util.Statistics).EnableSAMIncludeHostLabel()
Question
Martin Fukátko · Nov 27, 2021
Hi, I have VSCode on my Windows 10 notebook with intersystems-community.objectscript-pack installed. I'm successfully connected to remote IRIS (2021.1). I can export classes, change them, save and import back to IRIS.
But every time VSCode starts, the message "Request initialize failed with message: Dynamic Linking Error: Win32 error 126" is displayed and InterSystems Language Server does not start.
Has anyone solved this problem yet? Windows 32bit, is not it? Only 64 bit is supported. Are you using 32-bit Windows? If so, see https://github.com/intersystems/language-server/issues/197 I think same issue as https://githubmemory.com/repo/intersystems/language-server/issues/186?page=2 .
@pvdmm Thanks for the log, I think that your problem is due to a couple of missing DLLs: msvcp120.dll and msvcr120.dll
These can be installed using the Visual C++ 2013 redistributable package available from https://support.microsoft.com/en-us/topic/update-for-visual-c-2013-redistributable-package-d8ccd6a5-4e26-c290-517b-8da6cfdf4f10
This is a link to an page talking about a bugfix update but it is the latest version (5) of these tools, linked from a Microsoft page titled "The latest supported Visual C++ downloads".
Please install this and then try running VSCode again.
If this fixes your problem the Language Server team can work out the best way to fix this issue for future installations of the extension. Thank you @Ohata.Yuji You seem to be right. In the meantime, I managed to start Language Server as follows:VScode runs smoothly on my second computer, so I looked for differences. I have Caché installed on the second computer, Iris on the troubled one. The problem disappeared when I installed Caché on the troubled one. It is Windows 64 bit. But the problem is solved now.
Article
Yuri Marx · Jun 17, 2020
In 2017, Forbes published an article talking about API Economy (see: https://www.forbes.com/sites/louiscolumbus/2017/01/29/2017-is-quickly-becoming-the-year-of-the-api-economy/). This article was the trigger to popularize the use of API and API Management by large companies. The article published a maturity model. My understanding is that Intersystems IRIS allows you to reach the top of the pyramid with your current technologies. See the figure above.For this it is important to combine % CSP.REST package, IRIS API Manager (IAM), ML Pack and IntegratedML, Native API for Python, BPL and interoperability adapters.
Announcement
Anastasia Dyubaylo · Nov 27, 2020
Hey Developers,
Are you ready to participate in the annual December competition?
Join the Advent of Code 2020 with InterSystems and participate in our ObjectScript contest to win some $$$ prizes!
🏆 Our Leaderboard 🏆
Here you can find our last year's participants.
👉🏼 Join the ObjectScript private leaderboard with 130669-ab1f69bf code.
Note: You need to sign in to Advent of code (e.g. with GitHub / Google / Twitter / Reddit account) to see the leaderboard and participate in the contest.
Prizes:
🥇 1st place - $3,000
🥈 2nd place - $2,000
🥉 3rd place - $1,000
All winners will also get a special high-level Global Master badge.
Note: InterSystems employees are not eligible for money prizes.
Win Conditions:
To win our prize you should be on the top of the ObjectScript Leaderboard and upload all the solutions in a public repository on GitHub and present the code in InterSystems ObjectScript in UDL form as presented in the template below.
⬇️ The Advent of Code 2020 contest ObjectScript template
So!
The first puzzles will unlock on December 1st at midnight EST (UTC-5).
See you then and good luck to all of you! Also join the discord channel to discuss terms, rules, everything. As we discussed and decided in discord it's OK to keep the repo private until the end of the contest. At the moment the following members are in the top 20 🔥
top 20 🔥 participants according to today's results:
Hey Devs!
Let's see the top 20 participants 🤩
Our 🔥 top 20!
Today's best 20 🔥
Top 20))
Brilliant 20 participants 🤩
Please enjoy the best 20 participants!
Only 4 days left till the end of the competition 💪
Let’s see the results!
Devs!
Please enjoy the results of the best 20🤩
Only 2 days left! Best 20 participants at the moment 🤩
Another way to look at results -- by medal count. Border is part 1 (doesn't count), background is part 2.
https://bitbucket.org/bertsarens/aoc2020/src/master/ https://github.com/uvg/AdventOfCode/tree/master/2020/COS OK. The first time I followed to the end. The code I was forced to produce by time pressure is so ugly and dirty that I refuse to publish it.Nevertheless a clear demonstration for what was ISOS (aka COS) NOT designed for:Higher mathematical calculus, matrix transformations, arrays with independent dimensions, ....[ Though I have to admit that I encountered tensors, rotors, matrix transformations, Mr. Fermat's theories, ... only at university 50+ years ago. And I didn't miss it in between ]
There was no demand for the real strengths of IRIS!In addition, I verified my personal credo that writing some code in ISOS/COSonly because it is possible makes no sense and is of no commercial value.Especially with the broad range of options in IRIS to include external code.
Article
Yuri Marx · Jan 25, 2021
The ObjectScript language of InterSystems IRIS has a very powerful metadata engine called XData. This feature allows the creation of metadata definitions for your classes, to be used by the compiler or by programs that will extend the standard features of the language, based on the XData definitions of its scope.
An example is IRIS Publisher, an Open Source application from the community capable of collecting all XData definitions in HTML and / or Markdown format and generating a Web Portal with all the application documentation assembled from these XData elements.
See the whole process here:
Let's see a practical example, follow the steps:
Access the link https://openexchange.intersystems.com/package/IRIS-Publisher to download IRIS Publisher.
Clone the project repository in git in a local folder of your choice: git clone https://github.com/yurimarx/iris-publisher
Open the project's source code. It is in the iris-publisher folder. We will create some XData elements.
Go to the Person class inside src / dc / Sample. Inspect the two example XData definitions between lines 34 to 43.
/// Documentation for Person in HTML
XData PersonDocHtml [ MimeType = text/html ]
{
<h1>This is the Person class</h1>
}
/// Documentation for Person in Markdown
XData PersonDocMarkdown [ MimeType = text/markdown ]
{
<h1>This is the Person class in MD</h1>
}
There are 3 large blocks, the text after ///, where it is possible to write a description of the XData element; the very definition of XData and MimeType (only HTML and Markdown are captured) and finally, between {}, all the HTML or Markdown content that will compose your documentation. In this example we use both, but we recommend defining only 1 of them.
It is possible to annotate all classes of the project, or part of them with XData, creating a very complete documentation of your application.
After documenting your classes using XData, we will compile the project documentation, in the terminal, execute: docker-compose up -d --build
After execution, your instance will be live and you will be able to run the IRIS Publisher API.
Run http://localhost:52773/swagger-ui/index.html?Url=http://localhost:52773/api/mgmnt/v1/USER/spec/crud#/default/UpdateDocConfig to define title, developer information and describe your application, use the following content as an example:
{
"SiteName":"Publisher",
"Summary":"Documentation of the Publisher",
"Description":"This an Application to generate documentation from XDATA",
"DeveloperName":"Yuri Gomes",
"DeveloperEmail": "yurimarx@gmail.com",
"DeveloperWebsite": "ymservices.tech"
}
Run http://localhost:52773/swagger-ui/index.html?url=http://localhost:52773/api/mgmnt/v1/USER/spec/crud#/default/InitiatePublisher to generate the documentation and start Documentation portal for your application.
Go to http: // localhost: 8000 and see all the documentation online!
If you enjoyed, vote in my app: https://openexchange.intersystems.com/contest/current