Clear filter
Announcement
Evgeny Shvarov · Mar 17
Hi Developers!
Here're the technology bonuses for the InterSystems AI Programming Contest: Vector Search, GenAI and AI Agents that will give you extra points in the voting:
Agent AI solution - 5
Vector Search usage - 4
Embedded Python - 3
LLM AI or LangChain usage: Chat GPT, Bard, and others - 3
IntegratedML usage - 3
Docker container usage - 2
ZPM Package deployment - 2
Online Demo - 2
Implement InterSystems Community Idea - 4
Find a bug in Vector Search, or Integrated ML, or Embedded Python - 2
First Article on Developer Community - 2
Second Article On DC - 1
First Time Contribution - 3
Video on YouTube - 3
Suggest a new idea - 1
See the details below.
AI Agent solution -5 points
Build an AI agent solution leveraging any of the popular AI agent enabling platforms such as Zapier, Make, N8N, Pydentic or/and InterSystems IRIS Interoperability. Learn more in this post.
Feel free to use any different AI Agent enabling platform, but please confirm in advance here in the comments.
Vector Search - 4 points
Starting from 2024.1 release InterSystems IRIS contains a new technology vector search that allows to build vectors over InterSystems IRIS data and perform search of already indexed vectors. Use it in your solution and collect 5 bonus points. Here is the demo project that leverages it.
Embedded Python - 3 points
Use Embedded Python in your application and collect 3 extra points. You'll need at least InterSystems IRIS 2021.2 for it. Embedded Python template and examples.
LLM AI or LangChain usage: Chat GPT, Gemini, Mistral, and others - 3 points
Collect 3 bonus expert points for building a solution that uses LangChain libs or Large Language Models (LLM) such as ChatGPT, Bard and other AI engines like PaLM, LLaMA and more. AutoGPT usage counts too.
A few examples already could be found in Open Exchange: iris-openai, chatGPT telegram bot.
Here is an article with langchain usage example.
IntegratedML usage - 3 points
Use IntegratedML SQL extension of InterSystems IRIS and IRIS Cloud SQL and collect 3 extra bonus points. Here is an IntegratedML demo template.
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(InterSystems 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 - 2 pointsCollect 2 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.
Implement Community Opportunity Idea - 4 points
Implement any idea from the InterSystems Community Ideas portal which has the "Community Opportunity" status. This will give you 4 additional bonus points.
Find a bug in Vector Search, IntegratedML or Embedded Python - 2 pointsWe want the broader adoption of InterSystems Vector Search, IntegratedML and Embedded Python, so we encourage you to report the bugs you will face during the development of your Python application with IRIS in order to fix it. Please submit the bugs you find for Vector Search, IntegratedML, and Embedded Python and how to reproduce it. You can collect 2 bonus points for the first reproducible bug and 1 point for the second bug for every technology. E.g. if you find 2 bugs in vector search and one bug in Embedded Python, you can collect 2+1+2 = 5 points.
Article on Developer Community - 2 points
Write a brand new article on Developer Community that describes the features of your project and how to work with it. Collect 2 points for the article.
The Second article on Developer Community - 1 point
You can collect one more bonus point for the second article or the translation regarding the application. The 3rd and more will not bring more points but the attention will all be yours.
First Time Contribution - 3 points
Collect 3 bonus points if you participate in InterSystems Open Exchange contests for the first time!
Video on YouTube - 3 points
Make the Youtube video that demonstrates your product in action and collect 3 bonus points per each.
Suggest a new idea - 1 point
Suggest a new idea regarding Vector Search, Generative AI or Machine Learning to get 1 point per person (not for each idea).
The list of bonuses is subject to change. Stay tuned!
Good luck in the competition!
Announcement
Celeste Canzano · Feb 19
Hello IRIS community,
InterSystems Certification is developing a certification exam for InterSystems IRIS Developer professionals, and if you match the exam candidate description given below, we would like you to beta test the exam. The exam will be available for beta testing on March 5, 2025, and the beta testing must be completed by April 20, 2025.
What are my responsibilities as a beta tester?
You must schedule and take the exam by April 20, 2025. The exam will be administered in an online proctored environment free of charge (the standard fee of $150 per exam is waived for all beta testers). The InterSystems Certification team will then perform a careful statistical analysis of all beta test data to set a passing score for the exam. The analysis of the beta test results will take 6-8 weeks, and once the passing score is established, you will receive an email notification from InterSystems Certification informing you of the results. If your score on the exam is at or above the passing score, you will have earned the certification!
Note: Beta test scores are completely confidential.
Interested in participating? Read the Exam Details and Instructions below:
Exam Details
Exam title: InterSystems IRIS Developer Professional
Candidate description: A back-end software developer who:
writes and executes efficient, scalable, maintainable, and secure code on (or adjacent to) InterSystems IRIS using best practices for the development life cycle,
effectively communicates development needs to systems and operations teams (e.g., database architecture strategy),
integrates InterSystems IRIS with modern development practices and patterns, and
is familiar with the different data models and modes of access for InterSystems IRIS (ObjectScript, Python, SQL, JDBC/ODBC, REST, language gateways, etc.)
Number of questions: 62
Time allotted to take exam: 2 hours
Recommended preparation: Review the content below before taking the exam.
Classroom Training
Developing with InterSystems Objects and SQL (classroom, 5 days)
Online Learning:
Getting Started with InterSystems IRIS for Coders (program, 20h 30m)
Using SQL in InterSystems IRIS (learning path, 3h 45m)
Managing InterSystems IRIS for Developers (learning path, 2h 30m)
Analyzing Data with InterSystems IRIS BI (learning path, varies)
Deploying and Testing InterSystems Products Using CI/CD Pipelines (course, 25m)
Recommended practical experience: At least 2 years of experience developing with InterSystems IRIS and a basic understanding of ObjectScript is recommended.
Exam practice questions
A set of practice questions is provided here to help familiarize candidates with question formats and approaches.
Exam format
The questions are presented in two formats: multiple choice and multiple response. Access to InterSystems IRIS Documentation will be available during the exam.
DISCLAIMER: Please note this exam has a 2-hour time limit. While InterSystems documentation will be available during the exam, candidates will not have time to search the documentation for every question. Thus, completing the recommended preparation before taking the exam, and searching the documentation only when absolutely necessary during the exam, are both strongly encouraged!
System requirements for beta testing
Working camera & microphone
Dual-core CPU
At least 2 GB available of RAM memory
At least 500 MB of available disk space
Minimum internet speed:
Download - 500kb/s
Upload - 500kb/s
Exam topics and content
The exam contains questions that cover the areas for the stated role as shown in the exam topics chart immediately below. All questions are based on InterSystems IRIS v2024.1+.
Topic
Subtopic
Knowledge, skills, and abilities
1. Best practices: Architecture
1.1 Determines database storage strategy in InterSystems IRIS
Determines which databases should be included in a namespace
Recommends database architecture based on expected data growth
Structures data to support global mappings
Identifies implications of mirroring on application performance and availability
Identifies implications of configuration settings when designing for scale (buffers, locks, process memory)
Identifies implications of IRIS upgrades on database architecture
Identifies implications of security requirements on database architecture
Identifies costs and benefits of using InterSystems interoperability functionality
Identifies benefits and tradeoffs for using InterSystems IRIS BI to augment usage of object and relational models
Identifies secure REST API design best practices
1.2. Determines data structures
Differentiates between registered object, serial object, and persistent classes
Determines indexes to add/update to improve performance
Describes relationship between globals, objects, and SQL
Determines when streams are the appropriate data type
Describes InterSystems IRIS support for JSON and XML
1.3. Plans data lifecycle
Evaluates strategies for data storage and retrieval (e.g., MDX, SQL, object)
Manages data life cycles (aka CRUD)
Describes expected application performance as a function of data volumes, users, and processes
2. Best practices: Development lifecycle
2.1 Uses recommended development tools and workflows with InterSystems IRIS
Uses Visual Studio Code to connect to InterSystems IRIS and develop client-side and server-side code
Uses InterSystems IRIS debugging tools (e.g., uses debugger in VS Code)
Identifies components required in Compose files used for container development
Enumerates available development tools (e.g., %SYS.MONLBL, ^PROFILE, and ^TRACE)
Describes options for automatically documenting code
Chooses background execution strategy
2.2 Integrates InterSystems IRIS with CI/CD pipelines
Describes deployment options for InterSystems IRIS (e.g., containers vs InterSystems IRIS installer)
Manages changes to CPF file to support continuous deployment
Uses the %UnitTest framework to write and run unit tests
Runs integration tests to confirm expectations in other applications
Runs system checks to check functional and non-functional requirements at production scale
Identifies implications of promoting changes
2.3 Uses source control with InterSystems IRIS
Describes options for integrating InterSystems IRIS with source control systems
Mitigates effects of importing an updated class/schema definition
3. Best practices: Data retrieval
3.1 Uses Python with InterSystems IRIS
Identifies Embedded Python capabilities in InterSystems IRIS
Describes features of different options for using Python with InterSystems IRIS (e.g., Embedded, Native API, etc.)
3.2 Connects to InterSystems IRIS
Configures JDBC/ODBC connections to InterSystems IRIS
3.3. Uses SQL with InterSystems IRIS
Differentiates between embedded SQL and dynamic SQL
Leverages IRIS-specific SQL features (e.g., implicit join, JSON)
Interprets query plans
Identifies automatically collected statistics via SQL Statement Index
Evaluates strategies for table statistics gathering (e.g., import, tune, representative data)
Evaluates SQL security strategies
3.4 Creates REST services
Creates REST services and differentiates between implementation options
Describes API monitoring and control features available in InterSystems API Manager
Secures REST services
Documents REST Services
4. Best practices: Code
4.1 Writes defensive code
Chooses strategy for error handling
Diagnoses and troubleshoots system performance and code execution performance
Manages and monitors process memory
Manages processes (including background processes)
Describes general system limits in IRIS (e.g., max string vs stream, # of properties)
4.2 Writes secure code
Implements database and data element encryption
Connects securely to external systems
Prevents SQL injection attacks (e.g., sanitizing, concatenating vs parameterizing)
Prevents remote code execution
Leverages InterSystems IRIS security model
4.3 Ensures data integrity
Differentiates between journaling behavior inside vs outside transactions
Minimizes requirements for journal volumes and performance
Manages transactions
Enumerates causes for automatic transaction rollbacks
4.4 Implements concurrency controls
Describes functionality of locking mechanisms with respect to stateful and stateless applications
Follows best practices when using locks
Chooses between row locks and table locks
Instructions:
Please review the following instructions for scheduling and buying an exam:
From our exam store, log in with your InterSystems Single Sign-On (SSO) account.
If necessary, please register for an account.
Select InterSystems IRIS Developer Professional - Beta and click Get Started.
Verify system compatibility as instructed. The Safe Exam Browser download requires administrative privileges on your device.
Run the setup test to ensure the device satisfies the exam requirements.
Schedule your exam – this must be done before checking out. The exam must be taken at least 24 hours after, but within 30 days, of scheduling the exam.
Review the InterSystems Certification Program Agreement.
Confirm your appointment. You will receive an email from Certiverse with your exam appointment details.
You can access your reservations and history through the Exam Dashboard available through the MY EXAMS menu.
Below are important considerations that we recommend to optimize your testing experience:
Read the Taking InterSystems Exams and Exam FAQs pages to learn about the test-taking experience.
Read the InterSystems Certification Exam Policies.
On the day of your exam, log in to Certiverse at least 10 minutes before your scheduled time, launch the exam under MY EXAMS, and wait for the proctor to connect.
Please have your valid government ID ready for identification. The proctor will walk you through the process of securing your room and releasing the exam to you.
You may cancel or reschedule your appointment without penalty as long as the action is taken at least 24 hours in advance of your appointment. The voucher code will reactivate and you can use it to reschedule the exam.
Please contact certification@intersystems.com if you have any questions or need assistance, and we encourage you to share any feedback about the exam, whether positive or negative.
Announcement
Thomas Dyar · Oct 21, 2020
GA releases are now published for the 2020.3 version of InterSystems IRIS, IRIS for Health, with IntegratedML!
This is the first InterSystems IRIS release that includes IntegratedML, a new feature that brings "best of breed" machine learning to analysts and developers via simple and intuitive SQL syntax. Developers can now easily train and deploy powerful predictive models from within IRIS, right where their data lives. Documentation for IntegratedML is available as a User Guide. Virtual Summit 2020 features a number of sessions and an Experience Lab featuring IntegratedML, see overview here. See also content about IntegratedML on the Learning Services IntegratedML Resource Guide.
For this release:
Standard and Community Edition containers are available from the InterSystems Container Registry (ICR, documented here)
Community Edition containers are also available from Docker Hub
Kits (and container tarballs) are available from the WRC Software Distribution site
NOTE: Full installation kits are provided for a subset of server platforms on the WRC, which will give customers who do not use containers the option to use IntegratedML now, with the option to upgrade to the 2021.1 Extended Maintenance release.
The build number for these releases is 2020.3.0.302.0.
Community Edition containers can be pulled from ICR using the following commands:
docker pull containers.intersystems.com/intersystems/iris-ml-community:2020.3.0.302.0
docker pull containers.intersystems.com/intersystems/irishealth-ml-community:2020.3.0.302.0
and if you want to use IntegratedML images with ZPM included use the following images:
intersystemsdc/iris-ml-community:2020.3.0.302.0-zpm
Which you can run as:
docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/iris-ml-community:2020.3.0.302.0-zpm
Announcement
Simon Sha · Aug 11
#InterSystems Demo Games entry
⏯️ Auto-scaling made easy in GKE with InterSystems Kubernetes Operator (IKO)
Kubernetes horizontal pod auto-scaling (HPA) is the key to handle the unpredictable compute workload in healthcare systems. IKO helps orchestrating the IRIS container deployment in Kubernetes including the capability to configure HPA. This demo uses XSLT processing as an example to showcase this type of elasticity.
🗣 Presenter: @Simon.Sha, Sales Architect, InterSystems
🗳 If you like this video, don't forget to vote for it in the Demo Games!
Article
Murray Oldfield · Nov 18, 2019
The following steps show you how to display a sample list of metrics available from the `/api/monitor` service.
In the last post, I gave an overview of the service that exposes IRIS metrics in Prometheus format. The post shows how to set up and run [IRIS preview release 2019.4](https://community.intersystems.com/post/intersystems-iris-and-iris-health-20194-preview-published) in a container and then list the metrics.
This post assumes you have Docker installed. If not, go and do that now for your platform :)
### Step 1. Download and run the IRIS preview in docker
Follow the download instructions at [Preview Distributions](https://wrc.intersystems.com/wrc/coDistPreview.csp "Preview Distributions") to download the **Preview Licence Key** and an **IRIS Docker image**. For the example, I have chosen **InterSystems IRIS for Health 2019.4**.
Follow the instructions at [First Look InterSystems Products in Docker Containers](https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=AFL_containers "Run IRIS in a container instructions"). If you are familiar with containers, jump to the section titled: **Download the InterSystems IRIS Docker Image**.
The following terminal output illustrates the processes I used to load the docker image. The docker load command may take a couple of minutes to run;
$ pwd
/Users/myhome/Downloads/iris_2019.4
$ ls
InterSystems IRIS for Health (Container)_2019.4.0_Docker(Ubuntu)_12-31-2019.ISCkey irishealth-2019.4.0.379.0-docker.tar
$ docker load -i irishealth-2019.4.0.379.0-docker.tar
762d8e1a6054: Loading layer [==================================================>] 91.39MB/91.39MB
e45cfbc98a50: Loading layer [==================================================>] 15.87kB/15.87kB
d60e01b37e74: Loading layer [==================================================>] 12.29kB/12.29kB
b57c79f4a9f3: Loading layer [==================================================>] 3.072kB/3.072kB
b11f1f11664d: Loading layer [==================================================>] 73.73MB/73.73MB
22202f62822e: Loading layer [==================================================>] 2.656GB/2.656GB
50457c8fa41f: Loading layer [==================================================>] 14.5MB/14.5MB
bc4f7221d76a: Loading layer [==================================================>] 2.048kB/2.048kB
4db3eda3ff8f: Loading layer [==================================================>] 1.491MB/1.491MB
Loaded image: intersystems/irishealth:2019.4.0.379.0
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
intersystems/irishealth 2019.4.0.379.0 975a976ad1f4 3 weeks ago 2.83GB
For simplicity copy the key file to a folder location you will use for persistent storage and rename to `iris.key`;
$ mkdir -p /Users/myhome/iris/20194
$ cp 'InterSystems IRIS for Health (Container)_2019.4.0_Docker(Ubuntu)_12-31-2019.ISCkey' /Users/myhome/iris/20194/iris.key
$ cd /Users/myhome/iris/20194
$ ls
iris.key
Start IRIS using the folder you created for persistent storage;
$ docker run --name iris --init --detach --publish 52773:52773 --volume `pwd`:/external intersystems/irishealth:2019.4.0.379.0 --key /external/iris.key
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
009e52c121f0 intersystems/irishealth:2019.4.0.379.0 "/iris-main --key /e…" About a minute ago Up About a minute (healthy) 0.0.0.0:52773->52773/tcp iris
Cool! You can now connect to the [System Management Portal](http://localhost:52773/csp/sys/%25CSP.Portal.Home.zen "Home SMP") on the running container. I used login/password _SuperUser/SYS_; you will be prompted to change the password first time.
Navigate to Web Applications. `System > Security Management > Web Applications`
You will see a Web Application: `/api/monitor` this is the service exposing IRIS metrics.
>**You do not have to do anything to return metrics, it just works.**
### Step 2. Preview metrics
In later posts, we will _scrape_ this endpoint with Prometheus or SAM to collect metrics at set intervals. But for now, let us see the full list of metrics returned for this instance. A simple way, for example on Linux and OSX, is to issue an HTTP GET using the `curl` command. For example; on my (pretty much inactive) container the list starts with;
$ curl localhost:52773/api/monitor/metrics
:
:
iris_cpu_usage 0
iris_csp_activity{id="127.0.0.1:52773"} 56
iris_csp_actual_connections{id="127.0.0.1:52773"} 8
iris_csp_gateway_latency{id="127.0.0.1:52773"} .588
iris_csp_in_use_connections{id="127.0.0.1:52773"} 1
iris_csp_private_connections{id="127.0.0.1:52773"} 0
iris_csp_sessions 1
iris_cache_efficiency 35.565
:
:
And so on. The list can be very long on a production system. I have dumped the full list at the end of the post.
Another useful way is to use the [Postman application](https://www.getpostman.com "POSTMAN"), but there are other ways. Assuming you have installed Postman for your platform, you can issue an HTTP GET and see the metrics returned.
## Summary
That is all for now. In the next post, I will start with collecting the data in _Prometheus_ and look at a sample _Grafana_ dashboard.
### Full list from preview container
A production system will have more metrics available. As you can see from some of the labels, for example; `{id="IRISLOCALDATA"}` there are some metrics that are per-database or for CPU by process type `{id="CSPDMN"}`.
iris_cpu_pct{id="CSPDMN"} 0
iris_cpu_pct{id="CSPSRV"} 0
iris_cpu_pct{id="ECPWorker"} 0
iris_cpu_pct{id="GARCOL"} 0
iris_cpu_pct{id="JRNDMN"} 0
iris_cpu_pct{id="LICENSESRV"} 0
iris_cpu_pct{id="WDSLAVE"} 0
iris_cpu_pct{id="WRTDMN"} 0
iris_cpu_usage 0
iris_csp_activity{id="127.0.0.1:52773"} 57
iris_csp_actual_connections{id="127.0.0.1:52773"} 8
iris_csp_gateway_latency{id="127.0.0.1:52773"} .574
iris_csp_in_use_connections{id="127.0.0.1:52773"} 1
iris_csp_private_connections{id="127.0.0.1:52773"} 0
iris_csp_sessions 1
iris_cache_efficiency 35.850
iris_db_expansion_size_mb{id="ENSLIB"} 0
iris_db_expansion_size_mb{id="HSCUSTOM"} 0
iris_db_expansion_size_mb{id="HSLIB"} 0
iris_db_expansion_size_mb{id="HSSYS"} 0
iris_db_expansion_size_mb{id="IRISAUDIT"} 0
iris_db_expansion_size_mb{id="IRISLOCALDATA"} 0
iris_db_expansion_size_mb{id="IRISSYS"} 0
iris_db_expansion_size_mb{id="IRISTEMP"} 0
iris_db_free_space{id="ENSLIB"} .055
iris_db_free_space{id="HSCUSTOM"} 2.3
iris_db_free_space{id="HSLIB"} 113
iris_db_free_space{id="HSSYS"} 9.2
iris_db_free_space{id="IRISAUDIT"} .094
iris_db_free_space{id="IRISLOCALDATA"} .34
iris_db_free_space{id="IRISSYS"} 6.2
iris_db_free_space{id="IRISTEMP"} 20
iris_db_latency{id="ENSLIB"} 0.030
iris_db_latency{id="HSCUSTOM"} 0.146
iris_db_latency{id="HSLIB"} 0.027
iris_db_latency{id="HSSYS"} 0.018
iris_db_latency{id="IRISAUDIT"} 0.017
iris_db_latency{id="IRISSYS"} 0.020
iris_db_latency{id="IRISTEMP"} 0.021
iris_db_max_size_mb{id="ENSLIB"} 0
iris_db_max_size_mb{id="HSCUSTOM"} 0
iris_db_max_size_mb{id="HSLIB"} 0
iris_db_max_size_mb{id="HSSYS"} 0
iris_db_max_size_mb{id="IRISAUDIT"} 0
iris_db_max_size_mb{id="IRISLOCALDATA"} 0
iris_db_max_size_mb{id="IRISSYS"} 0
iris_db_max_size_mb{id="IRISTEMP"} 0
iris_db_size_mb{id="HSLIB",dir="/usr/irissys/mgr/hslib/"} 1321
iris_db_size_mb{id="HSSYS",dir="/usr/irissys/mgr/hssys/"} 21
iris_db_size_mb{id="ENSLIB",dir="/usr/irissys/mgr/enslib/"} 209
iris_db_size_mb{id="IRISSYS",dir="/usr/irissys/mgr/"} 113
iris_db_size_mb{id="HSCUSTOM",dir="/usr/irissys/mgr/HSCUSTOM/"} 11
iris_db_size_mb{id="IRISTEMP",dir="/usr/irissys/mgr/iristemp/"} 21
iris_db_size_mb{id="IRISAUDIT",dir="/usr/irissys/mgr/irisaudit/"} 1
iris_db_size_mb{id="IRISLOCALDATA",dir="/usr/irissys/mgr/irislocaldata/"} 1
iris_directory_space{id="HSLIB",dir="/usr/irissys/mgr/hslib/"} 53818
iris_directory_space{id="HSSYS",dir="/usr/irissys/mgr/hssys/"} 53818
iris_directory_space{id="ENSLIB",dir="/usr/irissys/mgr/enslib/"} 53818
iris_directory_space{id="IRISSYS",dir="/usr/irissys/mgr/"} 53818
iris_directory_space{id="HSCUSTOM",dir="/usr/irissys/mgr/HSCUSTOM/"} 53818
iris_directory_space{id="IRISTEMP",dir="/usr/irissys/mgr/iristemp/"} 53818
iris_directory_space{id="IRISAUDIT",dir="/usr/irissys/mgr/irisaudit/"} 53818
iris_disk_percent_full{id="HSLIB",dir="/usr/irissys/mgr/hslib/"} 10.03
iris_disk_percent_full{id="HSSYS",dir="/usr/irissys/mgr/hssys/"} 10.03
iris_disk_percent_full{id="ENSLIB",dir="/usr/irissys/mgr/enslib/"} 10.03
iris_disk_percent_full{id="IRISSYS",dir="/usr/irissys/mgr/"} 10.03
iris_disk_percent_full{id="HSCUSTOM",dir="/usr/irissys/mgr/HSCUSTOM/"} 10.03
iris_disk_percent_full{id="IRISTEMP",dir="/usr/irissys/mgr/iristemp/"} 10.03
iris_disk_percent_full{id="IRISAUDIT",dir="/usr/irissys/mgr/irisaudit/"} 10.03
iris_ecp_conn 0
iris_ecp_conn_max 2
iris_ecp_connections 0
iris_ecp_latency 0
iris_ecps_conn 0
iris_ecps_conn_max 1
iris_glo_a_seize_per_sec 0
iris_glo_n_seize_per_sec 0
iris_glo_ref_per_sec 7
iris_glo_ref_rem_per_sec 0
iris_glo_seize_per_sec 0
iris_glo_update_per_sec 2
iris_glo_update_rem_per_sec 0
iris_journal_size 2496
iris_journal_space 50751.18
iris_jrn_block_per_sec 0
iris_jrn_entry_per_sec 0
iris_jrn_free_space{id="WIJ",dir="default"} 50751.18
iris_jrn_free_space{id="primary",dir="/usr/irissys/mgr/journal/"} 50751.18
iris_jrn_free_space{id="secondary",dir="/usr/irissys/mgr/journal/"} 50751.18
iris_jrn_size{id="WIJ"} 100
iris_jrn_size{id="primary"} 2
iris_jrn_size{id="secondary"} 0
iris_license_available 31
iris_license_consumed 1
iris_license_percent_used 3
iris_log_reads_per_sec 5
iris_obj_a_seize_per_sec 0
iris_obj_del_per_sec 0
iris_obj_hit_per_sec 2
iris_obj_load_per_sec 0
iris_obj_miss_per_sec 0
iris_obj_new_per_sec 0
iris_obj_seize_per_sec 0
iris_page_space_per_cent_used 0
iris_phys_mem_per_cent_used 95
iris_phys_reads_per_sec 0
iris_phys_writes_per_sec 0
iris_process_count 29
iris_rtn_a_seize_per_sec 0
iris_rtn_call_local_per_sec 10
iris_rtn_call_miss_per_sec 0
iris_rtn_call_remote_per_sec 0
iris_rtn_load_per_sec 0
iris_rtn_load_rem_per_sec 0
iris_rtn_seize_per_sec 0
iris_sam_get_db_sensors_seconds .000838
iris_sam_get_jrn_sensors_seconds .001024
iris_system_alerts 0
iris_system_alerts_new 0
iris_system_state 0
iris_trans_open_count 0
iris_trans_open_secs 0
iris_trans_open_secs_max 0
iris_wd_buffer_redirty 0
iris_wd_buffer_write 0
iris_wd_cycle_time 0
iris_wd_proc_in_global 0
iris_wd_size_write 0
iris_wd_sleep 10002
iris_wd_temp_queue 42
iris_wd_temp_write 0
iris_wdwij_time 0
iris_wd_write_time 0
iris_wij_writes_per_sec 0
Hi Murray!
This is excellent, love this work and glad its making its way into the api.
For some reason though, I am unable to add this as a direct Prometheus datasource in Grafana and wondering if there is a model or version pre-requisite to Grafana ?
I can see the metrics with curl, wget, postman, and a browser et al... but when I add the datasource to grafana it fails the test.
Aany ideas ? Great article!
I have some questions:
Are there any Interoperability metrics?
How do I add my own custom metrics?
Hi Ron, I should have been clearer. The metrics are in a format to be consumed by Prometheus (or SAM). Once in Prometheus they go into a database that Grafana connects to as a Prometheus datasource. You want to do it this way to get the full functionality of Prometheus Queries + Grafana visualisation. We did try using a connector directly to IRIS but that really limits the functionality (was SimpleJSON). I will be publishing some example Grafana templates specific to IRIS soon. But the Link here to Mikhail's post has an example of connecting to Grafana near the end. If you mean are there metrics for Ensemble, HealthShare, etc. Then no, not at the moment. However, the roadmap is there for this.
You can add custom metrics though; IRIS Documentation. See section "Create Application Metrics".
This will be very powerful when you start to combine telemetry from all the services that make up an application; from the OS, IRIS, and the application. 💡 The article is considered as InterSystems Data Platform Best Practice. Hi, you have some tests on 2020.1 ?
i have some strange issue, around 40 seconds response from a host with no charge server Hi, I have not tested on 2020.1. Are you saying there is no change in any of the metrics after 40 seconds on a busy system? no, metrics URL response after 40 seconds.
the systems have some databases, but is not in production or in use. Open Source IRIS AWS CloudWatch integration https://openexchange.intersystems.com/package/CloudWatch-IRIS use the same MONITOR REST API, along with messages.log (former cconsole.log) as a data source. The iris_db_latency metric measures latency to the database using a random read per documentation. Is it possible that this random read could be either a physical or logical read or is it always one or the other? That could make a big difference in how the metric is used. Thanks.
Announcement
Celeste Canzano · Jun 27
Hello InterSystems EHR community,
InterSystems Certification is currently developing a certification exam for InterSystems EHR Reports specialists, and if you match the exam candidate description given below, we would like you to beta test the exam! The exam will be available for beta testing starting June 30, 2025.
Please note, only candidates who have taken the TrakCare Reporting course are eligible to take the beta. Interested in the beta but haven't completed the course? It's not too late - simply complete the online portion of the course before August 25th. Please see Required Training under Exam Details below for more information.
Beta testing will be completed September 1, 2025.
What are my responsibilities as a beta tester?
You will schedule and take the exam by September 1st. The exam will be administered in an online proctored environment free of charge (the standard fee of $150 per exam is waived for all beta testers). The InterSystems Certification team will then perform a careful statistical analysis of all beta test data to set a passing score for the exam. The analysis of the beta test results will take 6-8 weeks, and once the passing score is established, you will receive an email notification from InterSystems Certification informing you of the results. If your score on the exam is at or above the passing score, you will have earned the certification!
Note: Beta test scores are completely confidential.
Interested in participating? Read the Exam Details below.
Exam Details
Exam title: InterSystems EHR Reports Specialist
Candidate description: An IT specialist who
Uses Logi Report Designer to design and author InterSystems Reports
Sets up, tests, and supports InterSystems Reports in InterSystems EHR
Works with stored procedure developers
Knows how to create and edit report layouts in InterSystems EHR
Required Training:
Completion of the online portion of the TrakCare Reporting course is required to be eligible to take this exam.
The online portion of the TrakCare Reporting course is available here to InterSystems employees. If you are an InterSystems customer and would like to take the course, then please contact your account manager.
Number of questions: 50
Time allotted to take exam: 2 hours
Recommended preparation: Review available InterSystems EHR documentation:
Online Documentation:
Logi Report Designer Documentation
Recommended practical experience:
At least 3 months full-time experience with creating reports using Logi Report Designer along with basic knowledge of InterSystems EHR is recommended.
Exam practice questions
A set of practice questions is provided here to familiarize candidates with question formats and approaches.
Exam format
The questions are presented in two formats: multiple choice and multiple response.
System requirements for beta testing
Working camera & microphone
Dual-core CPU
At least 2 GB available of RAM memory
At least 500 MB of available disk space
Minimum internet speed:
Download - 500kb/s
Upload - 500kb/s
Exam topics and content
The exam contains questions that cover the areas for the stated role as shown in the exam topics chart immediately below.
Topic
Subtopic
Knowledge, skills, and abilities
1. Creates InterSystems Reports using Logi Report Designer within InterSystems EHR
1.1 Describes what the specification is saying
Recalls what data sources and procedures are, and how to access the sources of data
Identifies what parameters are used from the specification
Distinguishes between different page report component types (e.g. cross tabs, banded objects, normal tables)
1.2 Identifies the components of InterSystems Reports
Distinguishes between catalogues and reports
Recalls the features of a catalogue
Catalogues connections and terms
Accesses the catalogue manager in the designer
Identifies which data source types are used in reporting
Identifies the data source connection and how to modify it
Identify what is required to use a JDBC connection
Recalls what a stored procedure is
Recalls when and why to update a stored procedure
Distinguishes between different data sources and their use cases
Recalls the importance of binding parameters
Manages catalogues using reference entities
Recalls how to change the SQL type of a database field (e.g. dates)
Identifies how to reuse sub-reports
Recalls the different use cases for sub-reports
Describe how to use parameter within a sub-report
Recalls how to configure the parameters that the sub-report requires
Recalls how to link a field on a row to filter sub-reports
Recalls the potential impact of updating stored procedures on the settings
1.3 Uses Logi Report Designer to design and present data
Distinguishes between the different formats of reports
Determines when and how to use different kinds of page report component types
Recalls the meaning of each band and where they appear (e.g. page header vs banded page header)
Recalls how to add groups and work with single vs. multiple groups
Differentiates between the types of summaries
Uses tools to manage, organize, and group data and pages including effectively using page breaks
Identifies when to use formulas
Uses formulas to format data and tables
Determines ho to best work with images including using dynamic images
Uses sub-reports effectively
Inserts standard page headers and footers into the report
Recalls how to embed fonts into the report
Applies correct formatting, localization, and languages
2. Integrates InterSystems reporting within InterSystems EHR
2.1 Understands InterSystems EHR report architecture
Recalls how to setup a report manager entry
Recalls how many user-inputted parameters can be used in InterSystems EHR
Recalls how to setup menu for a report and how to add menu to a header
Recalls what a security group is and adds menus to security group access
Configure InterSystems EHR layout webcommon.report
Differentiates between different types of layout fields
3. Supports InterSystems Reports
3.1 Verifies printing setup
Debug using menu or preview button
Tests the report by making sure it runs as expected
Demonstrates how to run reports with different combinations of parameters
Tests report performance with a big data set
Identifies error types
3.2 Uses print history
Identifies use cases for the print history feature
Recalls the steps to retry printing after a failed print
Uses print to history to verify parameters are correctly passed to the parameters in the stored procedure
Recalls how to identify a report was successfully previewed or if it encountered errors
Interested in participating? Eligible candidates who have completed the TrakCare Reporting course are encouraged to schedule and take the exam via our exam delivery platform. Candidates who are interested in participating in the beta but do not have the required training are encouraged to complete the online portion of the TrakCare Reporting course before August 25th.
If you have any questions, please contact certification@intersystems.com. @Celeste.Canzano @DC.Administration
Hi Celeste
I am very eager to participate in this beta exam
As an InterSystems customer, I understand that completion of the online portion of the TrakCare Reporting course is a prerequisite for the exam. I would like to request access to this course so that I can complete the necessary training and be eligible for the certification.
Please let me know the steps I need to follow to gain access.
Thank you for your time and support.
Announcement
Yann de Cambourg · Jun 3, 2022
About the job
The ideal candidate will be responsible for conceptualizing and executing clear, quality code to develop the best software. You will test your code, identify errors, and iterate to ensure quality code. You will also support our customers and partners by troubleshooting any of their software issues.
Responsibilities
Detect and troubleshoot software issues
Write clear quality code for software and applications and perform test reviews
Develop, implement, and test APIs
Provide input on software development projects
Application at yann.decambourg@synodis.fr - www.synodis.fr
Qualifications
French Speaking
Comfort using programming languages and relational databases
Strong debugging and troubleshooting skills
3+ years' of development experience on Intersystems IRIS or Intersystems Ensemble
Discussion
Yuri Marx · Dec 31, 2021
For me the best moments were:
1 - Global Masters WON the 2021 Influitive BAMMIE Award for Most Passionate Community
2 - Tech Article contests
3 - InterSystems Programming Contests
4 - 10,000+ DC members
5 - Partner directory and business services
6 - 500+ applications on OEX
7 - Open Virtual Summits
8 - Prizes from GM points
9 - Free online learning courses
10 - Discord channels
11 - Innovations from IRIS Data Platform
12 - Multilanguage communities, including portuguese, spanish and chinese community
13 - Advent of Code So cool! Thanks for sharing, Yuri! 🤟 Wow, @Yuri.Gomes!
Thanks for the highlights!
This was a wonderful year - and mostly because of you, InterSystems Developer Community members!
Thank you! Looking forward to seeing how will be 2022! I agree 100%!
Question
Ankur Shah · Jan 4, 2022
Hi Team,
I want implement build/release pipeline for InterSystems IRIS rest API with VSTS without docker container or other tool.
Can you please provide step by step guide for same.
Thanks,
Ankur Shah
Most of the CI/CD processes are now based on Container's way. And do it without Docker makes this process much more complex. And It's not quite clear what do you want to achieve.
And in any way, this task is quite complex, and very much depends on what kind of application you have, how you build it right now, in some cases major OS, and even when some other languages and technologies are used for application. You may contact me directly, I can help with this, I have experience and knowledge on this. We are using angular as front end and Intersystem IRIS as a backend. We created a CI/CD pipeline for angular project without docker container with VSTS. Same way we want to implement CI/CD pipeline for Intersytem IRIS.
Goal is to move our IRIS code from stage server to production server with the help of CI/CD pipeline. Moreover, we don't have any idea on docker and not sure what additional infrastructure required for used docker container. Hi.
I implement CI/CD pipeline of IRIS in AWS without container!I use CodeCommit what is git service and CodeDeploy what is deploy service.
When source code(cls files) was pushed to CodeCommit, CodeDeploy executes to pull source files from CodeCommit, and deploy to application server.Application server is installed IRIS, and use Interoperability for monitor deploy files.
When Interoperability detects files, executes $SYSTEM.OBJ.DeletePackage(path) and $SYSTEM.OBJ.ImportDir(path, "*.cls;*.mac;*.int;*.inc;*.dfi", flag). Hi,
By mistake I have accepted your answer. Can you please help me on this. It would be great if you can provide some video or tutorial.
Thanks,
Ankur Shah VSTS supports Git, I would recommend using it for version control.
As for CI/CD pipeline check this series of articles.
Might be a bit late to the party, but we use studio project exports in one of our project to create build artifacts, mainly because we are working with customers that do not support containers or other methods of deployment.
Here is the snippet:
ClassMethod CreateStudioExport() As %Status
{
#Dim rSC As %Status
#Dim tSE As %Exception.StatusException
#Dim tProject as %Studio.Project
Try {
set tRelevantFiles = ..GetAllRelevantFiles()
set tProject = ##class(%Studio.Project).%New()
set tProject.Name = "My Studio Export"
set tIterator = tRelevantFiles.%GetIterator()
while tIterator.%GetNext(.key , .classToAdd ) {
write "Adding "_classToAdd_" to project export",!
$$$ThrowOnError(tProject.AddItem(classToAdd))
}
$$$ThrowOnError(tProject.%Save())
zwrite tProject
$$$ThrowOnError(tProject.Export("/opt/app/studio-project.xml", "ck", 0, .errorLog, "UTF-8"))
Set rSC = $$$OK
} Catch tSE {
zwrite errorLog
Set rSC = tSE.AsStatus()
Quit
}
Quit rSC
}
ClassMethod GetAllRelevantFiles() As %DynamicArray
{
set tt=##class(%SYS.Python).Import("files")
set string = tt."get_all_cls"("/opt/app/src/src")
return ##class(%DynamicArray).%FromJSON(string)
}
Here is the python script:
import os
import json # Used to gather relevant files during a buildpipeline step!
def normalize_file_path(file, directory):
# Remove the first part of the directory to normalize the class name
class_name = file[directory.__len__():].replace("\\", ".").replace("/", ".")
if class_name.startswith("."):
class_name = class_name[1:]
return class_name
def is_relevant_file(file):
file_lower = file.lower()
return file_lower.endswith(".cls") \
or file_lower.endswith(".inc") \
or file_lower.endswith(".gbl") \
or file_lower.endswith(".csp") \
or file_lower.endswith(".lut") \
or file_lower.endswith(".hl7")
def get_all_cls(directory):
all_files = [val for sublist in [[os.path.join(i[0], j) for j in i[2]] for i in os.walk(directory)] for val in sublist]
all_relevant_files = list(filter(is_relevant_file, all_files))
normalized = list(map(lambda file: normalize_file_path(file, directory), all_relevant_files))
print(normalized)
return json.dumps(normalized)
It is all rather hacky, and you probably have to use the snippets I provided as basis, and implement stuff yourself.
What we do is:
Spin up a docker container with python enabled in the buildpipeline that has the source files mounted to /opt/app/src
Execute the CreateStudioExport() method in said docker container
Copy the newly created studio export to the build pipeline host
Tag the studio export as artifact and upload it to a file storage
Maybe this helps! Let me know if you have questions!
Announcement
Anastasia Dyubaylo · Feb 8, 2023
Community webinars are back!
And we're thrilled to invite you to the webinar of George James Software, partners of InterSystems:
👉 "Demo of Deltanji: source control tailored for InterSystems IRIS" 👈
Join this webinar to learn how the Deltanji source control can seamlessly integrate into your development lifecycle and see a demonstration.
🗓️ Date & Time: Thursday, February 23, 4 pm GMT | 5 pm CET | 11 am ET
🗣️ Speakers from George James Software:
@George.James, CEO
@John.Murray, Senior Product Engineer
@Laurel.James, Marketing and Business Development Manager
👉 What will be discussed during the webinar:
How the source control integrates with your system is imperative in ensuring it works seamlessly behind the scenes without interruption. Deltanji source control, by George James Software, understands the internal workings of InterSystems IRIS and provides a solution that can seamlessly handle its unique needs. It has client integrations for VS Code, Studio, Management Portal, and Management Portal Productions.
This demo will show how Deltanji goes beyond the traditional CI/CD pipeline, automating the project lifecycle from development through to deployment, making it the perfect source control companion for organizations with continually evolving systems. It will also include a demo of the new Production component driver, which enables highly granular management of interoperability Productions with tight integration into the Management Portal.
Using Deltanji will improve the quality of both the development process and the overall health of a system - ensuring developers are working on the correct code and preventing regressions and other problems that can result in poor code quality and increased costs. Deltanji has been widely adopted by software consultants, large international organizations, and everyone in-between who works with InterSystems environments.
Sounds very interesting and useful!
Don't miss this opportunity to learn more about Deltanji source control and its use in InterSystems projects!
>> REGISTER HERE << Hi Devs,
Don't miss the upcoming webinar with George James Software!
Already 43 registered people. 😎
Registration continues >> click here <<
Hurry, the webinar starts in 3 days! 🔥
Developers,
The webinar will take place tomorrow at 4 pm GMT | 5 pm CET | 11 am ET!
Don't miss this opportunity to learn how the Deltanji source control can seamlessly integrate into your development lifecycle and see a demonstration.
>> Register here <<
Hey Community,
The webinar will start in 10 mins! Please join us in Zoom.
Or enjoy watching the live stream on YouTube.
See you ;) Hey everyone!
The recording of this webinar is available on DC YouTube:
▶️ [Webinar] Demo of Deltanji: source control tailored for InterSystems IRIS
Big applause to our awesome speakers @George.James, @John.Murray, and @Laurel.James.
And thanks everyone for joining! Thanks for having us!
Question
Drew Holloway · Feb 28, 2020
Let's say I start with a date range of '1-5-2019' to '5-25-2019' that occurs on one row. I'd like to ultimately have this show as 5 rows in Crystal Reports as shown below
Result
1-5-2019 1-31-2019
2-1-2019 2-28-2019
3-1-2019 3-31-2019
4-1-2019 4-30-2019
5-1-2019 5-25-2019
I found a result that worked in T-SQL, but I'm not sure how to translate it to Cache SQL. The T-SQL code is
select dateadd(d,N.number,d.begindate) adate, data from data d join Numbers N ON number between 0 and datediff(d, begindate, enddate)
This code fetches a row for every day between the begin date and end date. Then I can group it and find the MIN and MAX for each month.
Do you know how to write this in InterSystems Cache? We have a MyAvatar implementation and so I was able to create a multi iteration table after some trouble with numbers 0 to 99.
Thanks for any help! I believe I found the answer:SELECT DATEADD("D", "Number", '2017-01-01') FROM Numbers WHERE "Number" BETWEEN 0 AND DATEDIFF("D", '2017-01-01', '2017-04-05')
Now I just need to expand my Numbers table. I'm wondering if anyone has a view for this. I'd like a numbers view between 0 and 10000. I think that should be sufficient. Feel free to answer here, but I'll start a new topic. Defining and Using Stored Procedures
Source code
Class dc.test [ Abstract ]
{
Query daterange(
d1 As %String,
d2 As %String) As %Query(ROWSPEC = "dBegin:%String,dEnd:%String") [ SqlName = daterange, SqlProc ]
{
}
ClassMethod daterangeExecute(
ByRef qHandle As %Binary,
d1 As %String,
d2 As %String) As %Status
{
s qHandle("d1")=$system.SQL.TODATE(d1,"MM-DD-YYYY"),
qHandle("d2")=$system.SQL.TODATE(d2,"MM-DD-YYYY")
q $$$OK
}
ClassMethod daterangeFetch(
ByRef qHandle As %Binary,
ByRef Row As %List,
ByRef AtEnd As %Integer = 0) As %Status [ PlaceAfter = daterangeExecute ]
{
s d2=qHandle("d2"),
dBegin=qHandle("d1"),
dEnd=$system.SQL.LASTDAY(dBegin)
s:dEnd>d2 dEnd=d2
i dBegin>d2 {
s AtEnd=1
} else {
s Row=$lb($system.SQL.TOCHAR(dBegin,"MM-DD-YYYY"),$system.SQL.TOCHAR(dEnd,"MM-DD-YYYY")),
qHandle("d1")=dEnd+1
}
q $$$OK
}
ClassMethod daterangeClose(ByRef qHandle As %Binary) As %Status [ PlaceAfter = daterangeExecute ]
{
q $$$OK
}
}
Result:
select * from dc.daterange('1-5-2019','5-25-2019')
dBegin
dEnd
01-05-2019
01-31-2019
02-01-2019
02-28-2019
03-01-2019
03-31-2019
04-01-2019
04-30-2019
05-01-2019
05-25-2019
Thanks for your reply. I'm just able to use SQL code and tables for this. I'm not sure if that was clear, but I don't have a way to insert or work with code like you had suggested.
Thanks though!
Announcement
Vita Tsareva · Nov 30, 2022
Hi Community,
The day has arrived — InterSystems FHIR Healthtech Incubator Caelestinus Final Demo Day, November 30, 2022!
We started Caelestinus 8 months ago in March with 22 outstanding teams. Today 15 teams will pitch what they have achieved so far and their message to the market!
I’m pleased to invite everyone to InterSystems FHIR Health Tech incubator Caelestinus Demo Day, which will happen in a hybrid online/offline mode: you can watch pitches online via www.caelestinus.tech starting at 2 p.m. CET or go in-person in IKEM — Institute for Clinical and Experimental Medicine, the largest Czech medical research and clinical hospital.
Save the date: 30th of November 2022, 2 PM CET.Will be happy to see you online and in Prague in person.
Good luck to Caelestini startups!
Hey Developers,
Watch the recording of the Caelestinus Final Demo Day on InterSystems Developers YouTube:
⏯ The Final Demo Day of InterSystems FHIR Startup Incubator — Caelestinus
Question
Arun Kumar · Nov 24, 2017
Guys,Can you please guide me to create a RESTful API in our cache with JSON response. Thanks in advance.Thanks,Arun Kumar Durairaj. Thanks Benjamin. Check out the full tutorial which includes REST API set-up:https://community.intersystems.com/post/lets-write-angular-1x-app-cach%C3%A9-rest-backend-start-here This one is also very useful:Setting Up RESTful Services Ver.02https://learning.intersystems.com/course/view.php?id=776 The advice you have received thusfar has been OK, but the easiest thing to do would be to watch Mike Smart's global summit presentation, which takes you from literally nothing, to having a (nearly) fully fleshed out REST API in a simple case. See that here:https://learning.intersystems.com/course/view.php?id=681If this is your first time working with REST Applications, this is the best place to start. Then, if you'd like, you can continue with an online learning course, where Mike is going to expand on this to include some best practices. Announcement for that is here:https://community.intersystems.com/post/webinar-dec-7-rest-and-relaxation-best-practices-stress-free-restful-developmentHopefully we'll see you there!
Article
Yuri Marx · Jun 8, 2020
About regulations
Personal data privacy regulations have become an indispensable requirement for projects dealing with personal data. The compliance with these laws is based on 4 principles:
Compliance with the rights of the holder of personal data;
Governance of personal data assets;
Privacy by Design and by Default;
Data protection.
In case of violation in the treatment of personal data, controllers and operators of these data may suffer:
Fines of up to 4% of revenue or up to €20 million;
Shutdown of the digital service until the problem is corrected;
Publicity of the incident to the public.
Take Action
Administrators, developers and managers of data platforms on InterSystems technology can take the following detailed measures to help comply with personal data protection laws.
In compliance with the rights of the holder
Create APIs using Interoperability IRIS ESB for consumption in a Portal for the end user to exercise their rights. The APIs must allow to the holder:
Consult the personal data that the controller keeps about the holder. Allow downloading this query in open format (JSON).
Allow the holder to correct personal data. Use the IRIS ESB to record changes on each system where this personal data exists.
Implement a consent management service for sharing and processing personal data, especially sensitive data. In the InterSystems Health services the HIPAA is enough.
Allow the holder to consult with whom their data has been shared.
Build an interoperability service (ESB) with the internal service system to receive requests from the holder.
In personal data governance
Catalog persistent classes, productions and BI cubes that store or process personal data. Use XData for this. It is necessary to catalog whether it is personal or sensitive data, purpose of processing, technical and business responsible and for how long the data will be stored.
Perform good data access management.
Manage the data lifecycle by creating a procedure for disposing of data after the legal custody period.
Monitor and audit data flows.
In privacy by design and by default
Architect and design persistent objects or namespaces that deal with personal data with:
Create a DPIA (Data Protection Impact Assessment) when deals with sensitive data, high volume data, personal profile production and use of new technologies (Machine Learning);
Use managed key encryption to the sensitive data;
Use TLS and HTTPS to message channels.
Add DevSecOps in your DevOps initiative.
Create docker models with security and best practices set by default.
Include automated tests to security checks.
In Security Protection
Create an efficient procedure to backup and restore data. The backup must be cryptographed;
Work your environment in a High Availability;
Protect your API with IRIS API Management;
Protect your persistent objects with good authentication and authorization procedures;
Enable logs and use ESB to log end to end the sensitive operations;
Create Cybersecurity Guide;
Create IT Security Guide;
Create Data Privacy Guide.
Announcement
Anastasia Dyubaylo · Sep 15, 2020
Hi Community!
Join us for another InterSystems Brazil virtual event, this time in partnership with Shift. The topic of discussion led by Marcelo Lorencin on September 16 will be: "InterSystems IRIS for notification of Covid-19's test results for the Ministry of Health".
Please register now with the link below, vacancies are limited:
✅ InterSystems IRIS for notification of Covid-19's test results for the Ministry of Health
Date & Time: September 16 – 11:00 BRT
Note: The language of the webcast is Portuguese.
Join us!