Search

Clear filter
Announcement
Anastasia Dyubaylo · Nov 28, 2022

Time to vote in InterSystems IRIS for Health Contest: FHIR for Women's Health

Hi Community, It's voting time! Cast your votes for the best applications in our IRIS for Health Programming Contest focused on building FHIR solutions for Women's Health: 🔥 VOTE FOR THE BEST APPS 🔥 How to vote? Details below. Experts nomination: InterSystems experienced jury will choose the best apps to nominate the prizes in the Experts Nomination. Please welcome our experts: ⭐️ @akoblov, Support Specialist⭐️ @Alex.Woodhead, Technical Specialist⭐️ @Guillaume.Rongier7183, Sales Engineer⭐️ @Alberto.Fuentes, Sales Engineer⭐️ @Dmitry.Zasypkin, Senior Sales Engineer⭐️ @Daniel.Kutac, Senior Sales Engineer⭐️ @Eduard.Lebedyuk, Senior Cloud Engineer⭐️ @Steve.Pisani, Senior Solution Architect⭐️ @Patrick.Jamieson3621, Product Manager⭐️ @Nicholai.Mitchko, Manager, Solution Partner Sales Engineering⭐️ @Timothy.Leavitt, Development Manager⭐️ @Benjamin.DeBoe, Product Manager⭐️ @Robert.Kuszewski, Product Manager⭐️ @Stefan.Wittmann, Product Manager⭐️ @Raj.Singh5479, Product Manager⭐️ @Jeffrey.Fried, Director of Product Management⭐️ @Aya.Heshmat, Product Specialist⭐️ @Evgeny.Shvarov, Developer Ecosystem Manager⭐️ @Dean.Andrews2971, Head of Developer Relations Community nomination: For each user, a higher score is selected from two categories below: Conditions Place 1st 2nd 3rd If you have an article posted on DC and an app uploaded to Open Exchange (OEX) 9 6 3 If you have at least 1 article posted on DC or 1 app uploaded to OEX 6 4 2 If you make any valid contribution to DC (posted a comment/question, etc.) 3 2 1 Level Place 1st 2nd 3rd VIP Global Masters level or ISC Product Managers 15 10 5 Ambassador GM level 12 8 4 Expert GM level or DC Moderators 9 6 3 Specialist GM level 6 4 2 Advocate GM level or ISC Employees 3 2 1 Blind vote! The number of votes for each app will be hidden from everyone. Once a day we will publish the leaderboard in the comments to this post. The order of projects on the contest page will be as follows: the earlier an application was submitted to the competition, the higher it will be on the list. P.S. Don't forget to subscribe to this post (click on the bell icon) to be notified of new comments. To take part in the voting, you need: Sign in to Open Exchange – DC credentials will work. Make any valid contribution to the Developer Community – answer or ask questions, write an article, contribute applications on Open Exchange – and you'll be able to vote. Check this post on the options to make helpful contributions to the Developer Community. If you changed your mind, cancel the choice and give your vote to another application! Support the application you like! Note: contest participants are allowed to fix the bugs and make improvements to their applications during the voting week, so don't miss and subscribe to application releases! Hello everyone, Check out the V2 of my application for the InterSystems FHIR contest !! This time, we will see how to go from CSV to FHIR to SQL to JUPYTER all in one go and using only Python !!! Check this out here : https://community.intersystems.com/post/incredible-csv-fhir-sql-jupyter-fhir-contest-v2 thanks for your contributions, Lucas! :) Hey, Developers! Since the start of the contest, here are the top 5 apps! Expert Nomination, Top 5 Pregnancy Symptoms Tracker by @José.Pereira fhir-healthy-pregnancy by @Edmara.Francisco FemTech Reminder by @KATSIARYNA.Shaustruk FHIR Questionnaires by @Yuri.Gomes Contest-FHIR by @Lucas.Enard2487 ➡️ Voting is here. Community Nomination, Top 5 Pregnancy Symptoms Tracker by @José.Pereira FHIR Questionnaires by @Yuri.Gomes fhir-healthy-pregnancy by @Edmara.Francisco FemTech Reminder by @KATSIARYNA.Shaustruk Contest-FHIR by @Lucas.Enard2487 ➡️ Voting is here. Support the application you like! Devs! Here are the results after two days of voting! Expert Nomination, Top 5 Pregnancy Symptoms Tracker by @José Roberto Pereira fhir-healthy-pregnancy by @Edmara Francisco FemTech Reminder by @Katsiaryna Shaustruk Beat Savior by @Jan.Skála Contest-FHIR by @Lucas Enard ➡️ Voting is here. Community Nomination, Top 5 Pregnancy Symptoms Tracker by @José Roberto Pereira fhir-healthy-pregnancy by @Edmara Francisco FemTech Reminder by @Katsiaryna Shaustruk Contest-FHIR by @Lucas Enard Beat Savior by @Jan.Skála ➡️ Voting is here. Hi Developers! At the moment we can see the next results of the voting: Expert Nomination, Top 5 FemTech Reminder by @Katsiaryna Shaustruk Pregnancy Symptoms Tracker by @José Roberto Pereira fhir-healthy-pregnancy by @Edmara Francisco iris-fhir-app by @Oliver.Wilms NeuraHeart by @Grzegorz.Koperwas ➡️ Voting is here. Community Nomination, Top 5 Pregnancy Symptoms Tracker by @José Roberto Pereira FemTech Reminder by @Katsiaryna Shaustruk fhir-healthy-pregnancy by @Edmara Francisco FHIR Questionnaires by @Yuri.Gomes iris-fhir-app by @Oliver.Wilms ➡️ Voting is here. Support participants with your votes! Developers! Last call!Only a few hours left to the end of voting! Cast your votes for applications you like!
Announcement
Fabiano Sanches · Jul 19, 2023

Developer preview #6 for InterSystems IRIS, & IRIS for Health 2023.2

InterSystems announces its sixth preview, as part of the developer preview program for the 2023.2 release. This release will include InterSystems IRIS and InterSystems IRIS for Health. Highlights Many updates and enhancements have been added in 2023.2 and there are also brand-new capabilities, such as Time-Aware Modeling, and enhancements of Foreign Tables (but still as an experimental feature). Note that some of these features or improvements may not be available in this current developer preview. Another important topic is the removal of the Private Web Server (PWS) from the installers. This feature has been announced since last year and will be removed from InterSystems installers, but they are still in this first preview. See this note in the documentation. --> If you are interested to try the installers without the PWS, please enroll in its EAP using this form, selecting the option "NoPWS". Additional information related to this EAP can be found here. Future preview releases are expected to be updated biweekly and we will add features as they are ready. Please share your feedback through the Developer Community so we can build a better product together. Initial documentation can be found at these links below. They will be updated over the next few weeks until launch is officially announced (General Availability - GA): InterSystems IRIS InterSystems IRIS for Health Availability and Package Information As usual, Continuous Delivery (CD) releases come with classic installation packages for all supported platforms, as well as container images in Docker container format. For a complete list, refer to the Supported Platforms document. Installation packages and preview keys are available from the WRC's preview download site or through the evaluation services website (use the flag "Show Preview Software" to get access to the 2023.2). Container images for both Enterprise and Community Editions of InterSystems IRIS and IRIS for Health and all corresponding components are available from the new InterSystems Container Registry web interface. For additional information about docker commands, please see this post: Announcing the InterSystems Container Registry web user interface. The build number for this developer preview is 2023.2.0.214.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 preview download site.
Article
Yuri Marx · Jul 19, 2023

Using the new InterSystems IRIS Hibernate 6 Dialect for a Springboot Project

Hibernate is the most popular framework to do ORM (Object Relational Mapping) projects. With Hibernate a software can use the main DBMS in the market, including the capability to change the database vendor any time, without source code impact. This is possible because the Hibernate supports dialects. Each database product has a different dialect that can be assigned into a configuration file. So, if a software is using Oracle and is looking to evolve to InterSystems IRIS, just change the configuration file with connection and dialect information. If your software needs to be prepared to use database indicated by your client, the Hibernate is the solution to you. Is there any InterSystems IRIS dialect for the new Hibernate 6? Currently is not any official dialect to use IRIS with the new Hibernate 6. To resolve this issue, Dmitry Maslennikov proposed an idea in the excellent Ideas Portal (https://ideas.intersystems.com/ideas/DPI-I-372) and I implemented it.If you do this tutorial, you will see the idea and this new dialect of IRIS in action and working. What you need to do this tutorial To do this tutorial you need:1. An IRIS instance running (if you don’t have one, you can get it on https://openexchange.intersystems.com/package/ObjectScript).2. Spring Tools installed (download it on https://spring.io/tools). Choose Eclipse version for this tutorial.3. Java JDK version 17 (download it on https://jdk.java.net/archive/). Choose Java 17 for this tutorial.4. All source code for this tutorial: https://github.com/yurimarx/iris-java-tools/tree/main/springboot-sample. Tutorial steps 1. Open the Spring Tool Suite (STS) and choose a valid workspace path (any folder) and click Launch: 2. Click the Create new Spring Starter Project link: 3. This wizard will create a new Spring project. Fill the fields with these values:• Service URL: https://start.spring.io• Type: Maven (it is a package manager like the NPM, ZPM or IPM)• Packaging: Jar (type of executable for the compiled project)• Java Version: 17 or 20 (for this tutorial I selected version 17)• Language: Java• Group: com.tutorial (domain of the project for Maven)• Artifact: iris-tutorial (name of the project for Maven)• Version: 0.0.1-SNAPSHOT (version of the project for Maven)• Description: IRIS Tutorial• Package: com.tutorial.iris (root package for the project) 4. Click Next.5. Choose the following dependencies for your project: 6. Click Finish to create your project.7. Open your pom.xml file and include 2 new dependencies (for IRIS dialect and for IRIS JDBC driver) and 1 repository (necessary because the InterSystems IRIS JDBC driver is not published into a public maven repository). <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.1.1</version> <relativePath /> <!-- lookup parent from repository --> </parent> <groupId>com.tutorial</groupId> <artifactId>tutorial-dialect</artifactId> <version>0.0.1-SNAPSHOT</version> <name>tutorial-dialect</name> <description>Tutorial for IRIS Hibernate 6 Dialect</description> <properties> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-hateoas</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-rest-hal-explorer</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>io.github.yurimarx</groupId> <artifactId>hibernateirisdialect</artifactId> <version>1.1.0</version> </dependency> <dependency> <groupId>com.intersystems</groupId> <artifactId>intersystems-jdbc</artifactId> <version>3.7.1</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>InterSystems IRIS DC Git Repository</id> <url> https://github.com/intersystems-community/iris-driver-distribution/blob/main/JDBC/JDK18</url> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> </repositories> </project> 8. Go to the application.properties file (src > main > java > resources folder) and set connection and dialect properties with these values: spring.datasource.username=_SYSTEM spring.datasource.url=jdbc:IRIS://localhost:1972/USER spring.datasource.password=SYS spring.jpa.properties.hibernate.default_schema=Example spring.jpa.hibernate.ddl-auto=update spring.datasource.driver-class-name=com.intersystems.jdbc.IRISDriver spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults = false spring.jpa.database-platform=io.github.yurimarx.hibernateirisdialect.InterSystemsIRISDialect spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true 9. Create a new persistent class (click right button on project > New > Class): 10. Fill the following fields to create the class:• Package: com.tutorial.iris.model• Name: Product 11. Click Finish to create the class.12. Develop the Product persistent class (class with values persisted in a SQL table) with this source code: package com.tutorial.dialect.model; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.Table; import jakarta.persistence.Temporal; import jakarta.persistence.TemporalType; @Entity @Table(name = "Product") public class Product { @Id @GeneratedValue (strategy = GenerationType.IDENTITY) private Long id; private String name; private String description; private Double height; private Double width; private Double weight; @Column(name="releasedate") @Temporal(TemporalType.DATE) @JsonFormat(pattern = "yyyy-MM-dd") private Date releaseDate; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public Double getHeight() { return height; } public void setHeight(Double height) { this.height = height; } public Double getWidth() { return width; } public void setWidth(Double width) { this.width = width; } public Double getWeight() { return weight; } public void setWeight(Double weight) { this.weight = weight; } public Date getReleaseDate() { return releaseDate; } public void setReleaseDate(Date releaseDate) { this.releaseDate = releaseDate; } } 13. Create an Interface repository for CRUD operations to the Product class (click right the project > New > Interface): 14. Fill the values for the interface and click Finish:• Package: com.tutorial.iris.repository• Name: ProductRepository 15. Click Finish to create the interface.16. Develop the ProductRepository (a CRUD repository implements save, delete, find, find one and update functions) Interface (src > main > java > com > tutorial > dialect > repository folder ) with this source code: package com.tutorial.dialect.repository; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; import com.tutorial.dialect.model.Product; @Repository public interface ProductRepository extends CrudRepository<Product, Long> { } 17. Now, using the HAL browser from Springboot, is possible test CRUD functions in a web screen.18. Be sure to run an IRIS instance on localhost, port 1972 with user _SYSTEM and password SYS (or change the application.properties for other connections values).19. Run the application (click right the project > Run As > Spring boot app).20. On the console you can see the log indicating the application start: 21. Go to your browser and type http://localhost:8080. See the HAL browser: 22. Click plus button for products endpoint to create a new product: 23. Fill the following values to create a new product and click Go button to confirm: 24. A new product was persisted: Check the new row on IRIS (table product on USER namespace) Test other operations, check in the database and enjoy! I would like thanks @Dmitry.Maslennikov for your advanced support and for help me to improve this new Dialect Great initiative, @Yuri.Gomes ! Could you please publish the repo on OEX too? I published on OEX: https://openexchange.intersystems.com/package/IRIS-Hibernate-Dialect thank you, @Yuri.Gomes ! Thank you @Yuri.Gomes for this great job! Thanks guys Hi @Yuri.Gomes, Your video is available on InterSystems Developers YouTube channel: ⏯️ Using the new InterSystems IRIS Hibernate 6 Dialect for a Springboot Project Please enjoy! Great! Thanks
Announcement
Fabiano Sanches · Jul 26, 2023

Developer preview #7 for InterSystems IRIS, & IRIS for Health 2023.2

InterSystems announces its seventh preview, as part of the developer preview program for the 2023.2 release. This release will include InterSystems IRIS and InterSystems IRIS for Health. Discontinuation of the Private Web Server (PWS) A major topic in this release is the discontinuation of the Private Web Server (PWS) from the installers. This feature has been announced since last year and it's removed from InterSystems installers, starting with this developer preview. See this note in the documentation. Additional information related to this topic can be found here. --> If you are facing any issues and would like to get in touch with Product Management, or would like to provide your feedback, please email: NoPWS@InterSystems.com. Highlights Many updates and enhancements have been added in 2023.2 and there are also brand-new capabilities, such as Time-Aware Modeling, and enhancements of Foreign Tables (but still as an experimental feature). Initial documentation can be found at these links below. They will be updated over the next few weeks until launch is officially announced (General Availability - GA): InterSystems IRIS InterSystems IRIS for Health Availability and Package Information As usual, Continuous Delivery (CD) releases come with classic installation packages for all supported platforms, as well as container images in Docker container format. For a complete list, refer to the Supported Platforms document. Installation packages and preview keys are available from the WRC's preview download site or through the evaluation services website (use the flag "Show Preview Software" to get access to the 2023.2). Container images for both Enterprise and Community Editions of InterSystems IRIS and IRIS for Health and all corresponding components are available from the new InterSystems Container Registry web interface. For additional information about docker commands, please see this post: Announcing the InterSystems Container Registry web user interface. The build number for this developer preview is 2023.2.0.221.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 preview download site. I confirmed that the Community Edition containers (at least, the one I checked) still include a PWS 👍 I have a problem installing this version. Microsoft Defender 365 has detected a security threath in studio.cab : 'Bearfoos' malware. Maybe a false positive ? Developer preview license keys are expired I'd scan file with VirusTotal, or alternatives @John.Murray - Yes, Community Editions still have the PWS. The discontinuation affects kits for production environments, without the "Community" names. @John Murray - Yes, Community Editions still have the PWS. The discontinuation affects kits for production environments, without the "Community" names. @Dmitry.Maslennikov - thank you for bringing this to our attention. We're working on refreshing the keys now New keys are posted. Sorry for any inconvenience. Thank you! Just a week for a preview license? @Dmitry.Maslennikov - as GA is eminent the guys were set to expire post-GA, but Product Management decided that this really wasn't necessary so next time it will have a longer expiration even if GA is right around the corner. Thanks for raising the question!
Announcement
Anastasia Dyubaylo · Dec 28, 2023

[Video] How UC Davis Health Uses InterSystems API Manager

Hey Developers, Watch this video to learn how UC Davis Health uses InterSystems API Manager to satisfy business-partner demand for access to both custom and FHIR APIs: ⏯ How UC Davis Health Uses InterSystems API Manager @ Global Summit 2023 🗣 Presenter: @Carl.Campbell4240, Senior Integration Engineer, UC Davis Health Subscribe to our YouTube channel InterSystems Developers to stay tuned!
Article
Evgeny Shvarov · May 16, 2023

csvgenpy - Import any CSV into InterSystems IRIS Using Embedded Python!

Hi folks! Just want to introduce you a new util to import CSV into IRIS - csvgenpy! Install USER>zpm "install csvgenpy" Use: do ##class(shvarov.csvgenpy.csv).Generate("file or url","table","schema") Example: USER>do ##class(shvarov.csvgenpy.csv).Generate("https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv","titanic","data") This will create table and class data.titanic in IRIS and will load the data. you can proof it with: USER>:sql [SQL]USER>>select * from data.titanic [SQL]USER>>select * from data.titanic 1. select * from data.titanic passengerid survived pclass name sex age sibsp parch ticket fare cabin embarked 1 0 3 Braund, Mr. Owen Harris male 22 1 0 A/5 21171 7.25 S 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Thayer) female 38 1 0 PC 17599 71.283299999999996998 C85 C 3 1 3 Heikkinen, Miss. Laina female 26 0 0 STON/O2. 3101282 7.9249999999999998223 S ... So that's it! Basically it does the same thing as csvgen does, but uses python library sqlalchemy which works because of embedded python and sqlalchemy-iris by @Dmitry.Maslennikov P.S. csvgenpy can import some "complicated" for csvgen csv as this one. Basically it can import any kind of csv. Feedback and Pull requests are very welcome!
Announcement
Fabiano Sanches · Jun 7, 2023

Developer preview #3 for InterSystems IRIS, & IRIS for Health 2023.2

InterSystems announces its third preview, as part of the developer preview program for the 2023.2 release. This release will include InterSystems IRIS and InterSystems IRIS for Health. Highlights Many updates and enhancements have been added in 2023.2 and there are also brand-new capabilities, such as Time-Aware Modeling, enhancements of Foreign Tables, and the ability to use Ready-Only Federated Tables. Note that some of these features or improvements may not be available in this current developer preview. Another important topic is the removal of the Private Web Server (PWS) from the installers. This feature has been announced since last year and will be removed from InterSystems installers, but they are still in this first preview. See this note in the documentation. --> If you are interested to try the installers without the PWS, please enroll in its EAP using this form, selecting the option "NoPWS". Additional information related to this EAP can be found here. Future preview releases are expected to be updated biweekly and we will add features as they are ready. Please share your feedback through the Developer Community so we can build a better product together. Initial documentation can be found at these links below. They will be updated over the next few weeks until launch is officially announced (General Availability - GA): InterSystems IRIS InterSystems IRIS for Health Availability and Package Information As usual, Continuous Delivery (CD) releases come with classic installation packages for all supported platforms, as well as container images in Docker container format. For a complete list, refer to the Supported Platforms document. Installation packages and preview keys are available from the WRC's preview download site or through the evaluation services website (use the flag "Show Preview Software" to get access to the 2023.2). Container images for both Enterprise and Community Editions of InterSystems IRIS and IRIS for Health and all corresponding components are available from the new InterSystems Container Registry web interface. For additional information about docker commands, please see this post: Announcing the InterSystems Container Registry web user interface. The build number for this developer preview is 2023.2.0.202.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 preview download site.
Announcement
Fabiano Sanches · May 24, 2023

Developer preview #2 for InterSystems IRIS, & IRIS for Health 2023.2

InterSystems announces its second preview, as part of the developer preview program for the 2023.2 release. This release will include InterSystems IRIS and InterSystems IRIS for Health. Highlights Many updates and enhancements have been added in 2023.2 and there are also brand-new capabilities, such as Time-Aware Modeling, enhancements of Foreign Tables, and the ability to use Ready-Only Federated Tables. Note that some of these features or improvements may not be available in this current developer preview. Another important topic is the removal of the Private Web Server (PWS) from the installers. This feature has been announced since last year and will be removed from InterSystems installers, but they are still in this first preview. See this note in the documentation. --> If you are interested to try the installers without the PWS, please enroll in its EAP using this form, selecting the option "NoPWS". Additional information related to this EAP can be found here. Future preview releases are expected to be updated biweekly and we will add features as they are ready. Please share your feedback through the Developer Community so we can build a better product together. Initial documentation can be found at these links below. They will be updated over the next few weeks until launch is officially announced (General Availability - GA): InterSystems IRIS InterSystems IRIS for Health Availability and Package Information As usual, Continuous Delivery (CD) releases come with classic installation packages for all supported platforms, as well as container images in Docker container format. For a complete list, refer to the Supported Platforms document. Installation packages and preview keys are available from the WRC's preview download site or through the evaluation services website (use the flag "Show Preview Software" to get access to the 2023.2). Container images for both Enterprise and Community Editions of InterSystems IRIS and IRIS for Health and all corresponding components are available from the new InterSystems Container Registry web interface. For additional information about docker commands, please see this post: Announcing the InterSystems Container Registry web user interface. The build number for this developer preview is 2023.2.0.201.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 preview download site. What happened to ARM64 images again? Hi Dmitry. There was an issue with these images and we decided to not publish them. We're going to publish in the next drop, during next week.
Announcement
Anastasia Dyubaylo · Jul 13, 2023

[Webinar in Hebrew] Introducing VS Code, and Moving from InterSystems Studio

Hi Community, We're pleased to invite you to the upcoming webinar in Hebrew: 👉 Introducing VS Code, and Moving from Studio in Hebrew 👈 🗓️ Date & time: July 25th, 3:00 PM IDT 🗣️ Speaker: @Tani.Frankel, Sales Engineer Manager In this session, we will review using VS Code for InterSystems-based development. It is aimed at beginners of VS Code, but will also cover some areas that might be beneficial for users who are already using VS Code. We will also cover some topics relevant to people moving from InterSystems Studio to VS Code. The session is relevant for users of Caché / Ensemble / InterSystems IRIS Data Platform / InterSystems IRIS for Health / HealthShare Health Connect. ➡️ Register today and enjoy! >> ⚠️ Webinar password: ewE7mXWXr52 (39376999 from phones and video systems) Hey Community, The recording of this webinar is already available on DC YouTube: ⏯️ Introducing VS Code, and Moving from InterSystems Studio Enjoy!
Announcement
Fabiano Sanches · Apr 26, 2023

Get Alerts, Advisories and other Product News directly from InterSystems

Be in touch with InterSystems and receive alerts, advisories and product news quickly. The process is really simple: Click in this link: https://www.intersystems.com/support/product-alerts-advisories/ Fill in the form with your contact information and You're all set! As you can see, it takes less than a minute to keep informed about the news!
Announcement
Evgeny Shvarov · Apr 3, 2023

Bonuses For InterSystems IRIS Cloud SQL and IntegratedML Contest 2023

Here're the technology bonuses for the InterSystems IRIS Cloud SQL and IntegratedML Contest 2023 that will give you extra points in the voting: IntegratedML usage Online Demo Article on Developer Community The second article on Developer Community Video on YouTube First Time Contribution Community Idea Implementation IRIS Cloud SQL Survey See the details below. IntegratedML usage - 5 points Use IntegratedML SQL extension of IRIS Cloud SQL and collect 5 extra bonus points. Online Demo of your project - 2 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. 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. 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. Video on YouTube - 3 points Make the Youtube video that demonstrates your product in action and collect 3 bonus points per each. Examples. First Time Contribution - 3 points Collect 3 bonus points if you participate in InterSystems Open Exchange contests for the first time! Community Idea Implementation - 3 points You can get 3 extra bonus points if the dev tool implements one of the ideas listed as Community Opportunity on the InterSystems Idea portal. IRIS Cloud SQL Survey - 2 points Please complete a survey with your feedback on your experience with InterSystems IRIS Cloud SQL and collect 2 bonus points! You should receive the survey on our email as a participant. If not please raise the question here on in discord. The list of bonuses is subject to change. Stay tuned! Good luck with the competition! Hello, I have written two articles and I will write one more. I also deployed online demo for audit-consolidator. Thank you We added IRIS Cloud SQL survey bonus! Don't forget to collect one!
Announcement
Anastasia Dyubaylo · Apr 17, 2023

Time to vote in InterSystems IRIS Cloud SQL and IntegratedML Contest

Hi Community, It's voting time! Cast your votes for the best applications in our InterSystems IRIS Cloud SQL and IntegratedML Contest: 🔥 VOTE FOR THE BEST APPS 🔥 How to vote? Details below. Experts nomination: InterSystems experienced jury will choose the best apps to nominate the prizes in the Experts Nomination. Please welcome our experts: ⭐️ @akoblov, Support Specialist⭐️ @Guillaume.Rongier7183, Sales Engineer⭐️ @Eduard.Lebedyuk, Senior Cloud Engineer⭐️ @Steve.Pisani, Senior Solution Architect⭐️ @Timothy.Leavitt, Development Manager⭐️ @Evgeny.Shvarov, Developer Ecosystem Manager⭐️ @Dean.Andrews2971, Head of Developer Relations⭐️ @Alex.Woodhead, Senior Systems Developer⭐️ @Andreas.Dieckow , Principal Product Manager⭐️ @Aya.Heshmat, Product Specialist⭐️ @Benjamin.DeBoe, Product Manager⭐️ @Robert.Kuszewski, Product Manager⭐️ @Carmen.Logue , Product Manager⭐️ @Jeffrey.Fried, Director of Product Management⭐️ @Luca.Ravazzolo, Product Manager⭐️ @Raj.Singh5479, Product Manager⭐️ @Patrick.Jamieson3621, Product Manager⭐️ @Stefan.Wittmann, Product Manager⭐️ @Steven.LeBlanc, Product Specialist⭐️ @tomd, Product Specialist Community nomination: For each user, a higher score is selected from two categories below: Conditions Place 1st 2nd 3rd If you have an article posted on DC and an app uploaded to Open Exchange (OEX) 9 6 3 If you have at least 1 article posted on DC or 1 app uploaded to OEX 6 4 2 If you make any valid contribution to DC (posted a comment/question, etc.) 3 2 1 Level Place 1st 2nd 3rd VIP Global Masters level or ISC Product Managers 15 10 5 Ambassador GM level 12 8 4 Expert GM level or DC Moderators 9 6 3 Specialist GM level 6 4 2 Advocate GM level or ISC Employees 3 2 1 Blind vote! The number of votes for each app will be hidden from everyone. Once a day we will publish the leaderboard in the comments to this post. The order of projects on the contest page will be as follows: the earlier an application was submitted to the competition, the higher it will be on the list. P.S. Don't forget to subscribe to this post (click on the bell icon) to be notified of new comments. To take part in the voting, you need: Sign in to Open Exchange – DC credentials will work. Make any valid contribution to the Developer Community – answer or ask questions, write an article, contribute applications on Open Exchange – and you'll be able to vote. Check this post on the options to make helpful contributions to the Developer Community. If you changed your mind, cancel the choice and give your vote to another application! Support the application you like! Note: contest participants are allowed to fix the bugs and make improvements to their applications during the voting week, so don't miss and subscribe to application releases! Since the beginning of the voting we have the results: Expert Nomination, Top 5 superset-iris by @Dmitry.Maslennikov Sheep’s Galaxy by @Maria.Gladkova iris-mlm-explainer by @Muhammad.Waseem IntegratedML-IRIS-Cloud-Height-prediction by @珊珊.喻 Customer churn predictor by @Oleh.Dontsov ➡️ Voting is here. Community Nomination, Top 5 superset-iris by @Dmitry.Maslennikov Sheep’s Galaxy by @Maria.Gladkova iris-mlm-explainer by @Muhammad.Waseem IntegratedML-IRIS-Cloud-Height-prediction by @珊珊.喻 Customer churn predictor by @Oleh.Dontsov ➡️ Voting is here. So, the voting continues. Please support the application you like! Devs! Here are the top 5 for now: Expert Nomination, Top 5 superset-iris by @Dmitry Maslennikov Sheep’s Galaxy by @Maria Gladkova Customer churn predictor by @Oleh Dontsov audit-consolidator by @Oliver.Wilms iris-mlm-explainer by @Muhammad Waseem ➡️ Voting is here. Community Nomination, Top 5 superset-iris by @Dmitry Maslennikov IntegratedML-IRIS-Cloud-Height-prediction by @Shanshan Yu Sheep’s Galaxy by @Maria Gladkova iris-mlm-explainer by @Muhammad Waseem AI text detection by @Oleh Dontsov ➡️ Voting is here. Experts, we are waiting for your votes! 🔥 Support our participants with your votes! Hi Developers! At the moment we can see the next results of the voting: Expert Nomination, Top 5 Sheep’s Galaxy by @Maria Gladkova superset-iris by @Dmitry Maslennikov AI text detection by @Oleh Dontsov iris-mlm-explainer by @Muhammad Waseem Customer churn predictor by @Oleh Dontsov ➡️ Voting is here. Community Nomination, Top 5 Sheep’s Galaxy by @Maria Gladkova superset-iris by @Dmitry Maslennikov IntegratedML-IRIS-Cloud-Height-prediction by @Shanshan Yu AI text detection by @Oleh Dontsov iris-mlm-explainer by @Muhammad Waseem ➡️ Voting is here. Hi, Dev's! And here're the results at the moment: Expert Nomination, Top 5 Sheep’s Galaxy by @Maria Gladkova AI text detection by @Oleh Dontsov superset-iris by @Dmitry Maslennikov Customer churn predictor by @Oleh Dontsov iris-mlm-explainer by @Muhammad Waseem ➡️ Voting is here. Community Nomination, Top 5 Sheep’s Galaxy by @Maria Gladkova superset-iris by @Dmitry Maslennikov IntegratedML-IRIS-Cloud-Height-prediction by @Shanshan Yu AI text detection by @Oleh Dontsov Customer churn predictor by @Oleh Dontsov ➡️ Voting is here. Developers, only two days left to the end of the voting!Cast your votes for the application you like! Last day of voting! ⌛ Please check out the Contest Board.Our contestants need your votes! 📢
Announcement
Anastasia Dyubaylo · Mar 24, 2023

[Video] Git Source Control for InterSystems IRIS Interoperability with Docker and VSCode

Hi Developers, Often we create and edit InterSystems IRIS Interoperability solutions via a set of UI tools that is provided with IRIS. But it is sometimes difficult to setup the development environment to handle changes we make in the UI to source control. This video illustrates how git-source-control helps with source control Interoperability components while changing it in the UI. ⏯ Git Source Control for InterSystems IRIS Interoperability with Docker and VSCode Add these two lines in your iris.script during docker build: zpm "install git-source-control" do ##class(%Studio.SourceControl.Interface).SourceControlClassSet("SourceControl.Git.Extension") And Interoperability UI components will start working with git. Example application.
Article
sween · Jun 7, 2023

DeDupe an InterSystems® FHIR® Server With FHIR SQL Builder and Zingg

This post backs the demonstration at Global Summit 2023 "Demos and Drinks" with details most likely lost in the noise of the event. This is a demonstration on how to use the FHIR SQL Capabilities of InterSystems FHIR Server along side the Super Awesome Identity and Resolution Solution, Zingg.ai to detect duplicate records in your FHIR repository, and the basic idea behind remediation of those resources with the under construction PID^TOO|| currently enrolled in the InterSystems Incubator program. If you are into the "Compostable CDP" movement and want to master your FHIR Repository in place you may be in the right spot. Demo FHIR SQL Builder This is an easy 3 step process for FHIR SQL. Set up an Analysis Set up a Transform Set up a Projection Zingg.ai The documentation for Zingg is off the chain exhaustive and though extensible and scalable beyond this simple demo, here are the basics. Find Label Train Match Link Let's get on with it as they say... FHIR SQL We were awarded a full trial of the Health Connect Cloud suite for the duration of the incubator, included in that was the FHIR Server with FHIR SQL Enabled. The FHIR SQL Builder (abbreviated “builder”) is a sophisticated projection tool to help developers create custom SQL schemas using data in their FHIR (Fast Healthcare Interoperability Resources) repository without moving the data to a separate SQL repository. The objective of the builder is to enable data analysts and business intelligence developers to work with FHIR using familiar analytic tools, such as ANSI SQL, Power BI, or Tableau, without having to learn a new query syntax. I know right? Super great, now our "builder" is going to go to work projecting the fields weed need to identify the duplicate the records with Zingg. First step is the analysis, which you can hardly go wrong clicking this one into submission, simply point the analysis to "localhost" which is essentially the InterSystems FHIR Server underneath. The transforms are the critical piece to get right, you need to build these fields out to flatten the FHIR resources so they can be read to make some decisions over the SQL super server. These most likely will need some thought as the more fields you transform to sql, the better your machine learning model will end up when prospecting for duplicates. Now, a data steward type should typically be building these, but I whooped up a few for the demo with questionable simplicity, this was done by using the "clown suit" by hitting the pencil to generate them, but considering the sophistication that may go into them, you can import and export them as well. Pay special attention to the "Package" and "Name" as this will be the source table for your sql connection. This transform is essentially saying we want to use name and gender to detect duplicates. Patient Transform example { "name": "PIDTOO Patient", "description": "Patients for PIDTOO FHIR Dedupping Engine", "resources": [ { "resourceType": "Patient", "columns": [ { "name": "NameFamily", "type": "String", "path": "Patient.name.family", "index": false }, { "name": "NameGiven", "type": "String", "path": "Patient.name.given", "index": false }, { "name": "Gender", "type": "String", "path": "Patient.gender", "index": false }, { "name": "AddressPostalCode", "type": "String", "path": "Patient.address.postalCode", "index": false }, { "name": "IdentifierValue", "type": "String", "path": "Patient.identifier.value", "index": false } ] } ] } Now, the last part is essentially scheduling the job to project the data to a target schema. I think you will be presently surprised that as data is added to the FHIR Server, the projections fill automatically, phew. Now to seal the deal with the setup of FHIR SQL, you can see the projection for Patient (PIDTOO.Patient) being visible, then you create another table to store the output from the dedupe run (PIDTOO.PatientDups). Another step you will need to complete is enabling the Firewall so that external connections are enabled for your deployment, and you have allowed access for the source CIDR block connecting to the super server. Mentally bookmark the overview page, as it has the connectivity information and credentials needed to connect before moving to the next step. DeDupe with Zingg Zingg is super powerful, OSS, runs on Spark and scales to your wallet when it comes to de-duplication of datasets large and small. I don't want to oversimplify the task, but the reality is the documentation, functional container are enough to get up and running very quickly. We will keep this to the brass tacks though to minimally point out what needs to be completed to execute your first de-duplication job fired off against an IRIS Database. Install Clone the zingg.ai repo: https://github.com/zinggAI/zingg We also need the JDBC driver for Zingg to connect with IRIS. Download the IRIS JDBC driver and add the path of the driver to spark.jars property of zingg.conf... organize this jar in the `thirdParty/lib` directory. spark.jars=/home/sween/Desktop/PIDTOO/api/zingg/thirdParty/lib/intersystems-jdbc-3.7.1.jar Match Criteria This step takes some thought and can be fun if you are into this stuff or enjoy listening to black box recordings of plane crashes on YouTube. To demonstrate things, recall the fields we projected from "builder" to establish the match criteria. All of this is done in our python implementation that declares the PySpark job, which will be revealed in its entirety down a ways. # FHIRSQL Source Object FIELDDEFS # Pro Tip! # These Fields are included in FHIRSQL Projections, but not specified in the Transform fhirkey = FieldDefinition("Key", "string", MatchType.DONT_USE) dbid = FieldDefinition("ID", "string", MatchType.DONT_USE) # Actual Fields from the Projection srcid = FieldDefinition("IdentifierValue", "string", MatchType.DONT_USE) given = FieldDefinition("NameFamily", "string", MatchType.FUZZY) family = FieldDefinition("NameGiven", "string", MatchType.FUZZY) zip = FieldDefinition("AddressPostalCode", "string", MatchType.ONLY_ALPHABETS_FUZZY) gender = FieldDefinition("Gender", "string", MatchType.FUZZY) fieldDefs = [fhirkey, dbid, srcid, given, family,zip, gender] So the fields match the attributes in our IRIS project and the MatchTypes we set for each field type. You'll be delighted with what is available as you can immediately put them to good use with clear understanding. Three common ones are here: FUZZY: Generalized matching with strings and stuff EXACT: No variations allowed, deterministic value, guards against domain conflicts sorta. DONT_USE: Fields that have nothing to do with the matching, but needed in the remediation or understanding in the output. Some other favorites of mine are here, as they seem to work on dirty data a little bit better and make sense of multiple emails. EMAIL: Hacks off the domain name and the @, and uses the string. TEXT: Things between two strings ONLY_ALPHABETS_FUZZY: Omits integers and non-alphas where they clearly do not belong for match consideration The full list is available here for the curious. Model Create a folder to build your model... this one follows the standard in the repo, create folder `models/700`. # Object MODEL args = Arguments() args.setFieldDefinition(fieldDefs) args.setModelId("700") args.setZinggDir("/home/sween/Desktop/PIDTOO/api/zingg/models") args.setNumPartitions(4) args.setLabelDataSampleSize(0.5) Input These values are represented in what we setup in the previous steps on "builder" # "builder" Projected Object FIELDDEFS InterSystemsFHIRSQL = Pipe("InterSystemsFHIRSQL", "jdbc") InterSystemsFHIRSQL.addProperty("url","jdbc:IRIS://3.131.15.187:1972/FHIRDB") InterSystemsFHIRSQL.addProperty("dbtable", "PIDTOO.Patient") InterSystemsFHIRSQL.addProperty("driver", "com.intersystems.jdbc.IRISDriver") InterSystemsFHIRSQL.addProperty("user","fhirsql") # Use the same password that is on your luggage InterSystemsFHIRSQL.addProperty("password","1234") args.setData(InterSystemsFHIRSQL) Output Now this table is not a projected table by "builder", it is an empty table we created to house the results from Zingg. # Zingg's Destination Object on IRIS InterSystemsIRIS = Pipe("InterSystemsIRIS", "jdbc") InterSystemsIRIS.addProperty("url","jdbc:IRIS://3.131.15.187:1972/FHIRDB") InterSystemsIRIS.addProperty("dbtable", "PIDTOO.PatientDups") InterSystemsIRIS.addProperty("driver", "com.intersystems.jdbc.IRISDriver") InterSystemsIRIS.addProperty("user","fhirsql") # Please use the same password as your luggage InterSystemsIRIS.addProperty("password","1234") args.setOutput(InterSystemsIRIS) If you are trying to understand the flow here, hopefully this will clarify things. 1. Zingg reads the projected data from builder (PIDTOO.Patient)2. We do some "ML Shampoo" against the data.3. Then we write the results back to builder (PIDTOO.PatientDups) Thanks to @Sergei.Shutov3787 for the icons! ML Shampoo Now, Zingg is a supervised machine learning implementation, so you are going to have to train it up front, and at an interval to keep the model smart. Its the "rinse and repeat" part of the analogy if you havent gotten the shampoo reference from above. Find - Go get some data Label - Prompt the human to help us out Train - Once we have enough labelled data Match - Zingg writes out the results Link bash scripts/zingg.sh --properties-file config/zingg-iris.conf --run pidtoo-iris/FHIRPatient-IRIS.py findTrainingData bash scripts/zingg.sh --properties-file config/zingg-iris.conf --run pidtoo-iris/FHIRPatient-IRIS.py label bash scripts/zingg.sh --properties-file config/zingg-iris.conf --run pidtoo-iris/FHIRPatient-IRIS.py train For the find, you will get something a little bit like the below if things are working correctly. findTrainingData 2023-06-07 16:20:03,677 [Thread-6] INFO zingg.ZinggBase - Start reading internal configurations and functions 2023-06-07 16:20:03,690 [Thread-6] INFO zingg.ZinggBase - Finished reading internal configurations and functions 2023-06-07 16:20:03,697 [Thread-6] WARN zingg.util.PipeUtil - Reading input jdbc 2023-06-07 16:20:03,697 [Thread-6] WARN zingg.util.PipeUtil - Reading Pipe [name=InterSystemsFHIRSQL, format=jdbc, preprocessors=null, props={password=1234luggage, driver=com.intersystems.jdbc.IRISDriver, dbtable=PIDTOO.Patient, user=fhirsql, url=jdbc:IRIS://3.131.15.187:1972/FHIRDB}, schema=null] 2023-06-07 16:20:38,708 [Thread-6] WARN zingg.TrainingDataFinder - Read input data 71383 2023-06-07 16:20:38,709 [Thread-6] WARN zingg.util.PipeUtil - Reading input parquet 2023-06-07 16:20:38,710 [Thread-6] WARN zingg.util.PipeUtil - Reading Pipe [name=null, format=parquet, preprocessors=null, props={location=/home/sween/Desktop/PIDTOO/api/zingg/models/700/trainingData//marked/}, schema=null] 2023-06-07 16:20:39,130 [Thread-6] WARN zingg.util.DSUtil - Read marked training samples 2023-06-07 16:20:39,139 [Thread-6] WARN zingg.util.DSUtil - No configured training samples 2023-06-07 16:20:39,752 [Thread-6] WARN zingg.TrainingDataFinder - Read training samples 37 neg 64 2023-06-07 16:20:39,946 [Thread-6] INFO zingg.TrainingDataFinder - Preprocessing DS for stopWords 2023-06-07 16:20:40,275 [Thread-6] INFO zingg.util.Heuristics - **Block size **35 and total count was 35695 2023-06-07 16:20:40,276 [Thread-6] INFO zingg.util.Heuristics - Heuristics suggest 35 2023-06-07 16:20:40,276 [Thread-6] INFO zingg.util.BlockingTreeUtil - Learning indexing rules for block size 35 2023-06-07 16:20:40,728 [Thread-6] WARN org.apache.spark.sql.execution.CacheManager - Asked to cache already cached data. 2023-06-07 16:20:40,924 [Thread-6] INFO zingg.util.ModelUtil - Learning similarity rules 2023-06-07 16:20:41,072 [Thread-6] WARN org.apache.spark.sql.catalyst.util.package - Truncated the string representation of a plan since it was too large. This behavior can be adjusted by setting 'spark.sql.debug.maxToStringFields'. 2023-06-07 16:20:41,171 [Thread-6] INFO org.apache.spark.ml.util.Instrumentation - [06bfeecf] Stage class: LogisticRegression 2023-06-07 16:20:41,171 [Thread-6] INFO org.apache.spark.ml.util.Instrumentation - [06bfeecf] Stage uid: logreg_d240511c93be 2023-06-07 16:20:41,388 [Thread-6] INFO org.apache.spark.ml.util.Instrumentation - [06bfeecf] training: numPartitions=1 storageLevel=StorageLevel(1 replicas) 2023-06-07 16:20:41,390 [Thread-6] INFO org.apache.spark.ml.util.Instrumentation - [06bfeecf] {"featuresCol":"z_feature","fitIntercept":true,"labelCol":"z_isMatch","predictionCol":"z_prediction","probabilityCol":"z_probability","maxIter":100} 2023-06-07 16:20:41,752 [Thread-6] INFO org.apache.spark.ml.util.Instrumentation - [06bfeecf] {"numClasses":2} 2023-06-07 16:20:41,752 [Thread-6] INFO org.apache.spark.ml.util.Instrumentation - [06bfeecf] {"numFeatures":164} 2023-06-07 16:20:41,752 [Thread-6] INFO org.apache.spark.ml.util.Instrumentation - [06bfeecf] {"numExamples":101} 2023-06-07 16:20:41,753 [Thread-6] INFO org.apache.spark.ml.util.Instrumentation - [06bfeecf] {"lowestLabelWeight":"37.0"} 2023-06-07 16:20:41,753 [Thread-6] INFO org.apache.spark.ml.util.Instrumentation - [06bfeecf] {"highestLabelWeight":"64.0"} 2023-06-07 16:20:41,755 [Thread-6] INFO org.apache.spark.ml.util.Instrumentation - [06bfeecf] {"sumOfWeights":101.0} 2023-06-07 16:20:41,756 [Thread-6] INFO org.apache.spark.ml.util.Instrumentation - [06bfeecf] {"actualBlockSizeInMB":"1.0"} 2023-06-07 16:20:42,149 [Executor task launch worker for task 0.0 in stage 29.0 (TID 111)] WARN com.github.fommil.netlib.BLAS - Failed to load implementation from: com.github.fommil.netlib.NativeSystemBLAS 2023-06-07 16:20:42,149 [Executor task launch worker for task 0.0 in stage 29.0 (TID 111)] WARN com.github.fommil.netlib.BLAS - Failed to load implementation from: com.github.fommil.netlib.NativeRefBLAS 2023-06-07 16:20:44,470 [Thread-6] INFO org.apache.spark.ml.util.Instrumentation - [5a6fd183] training finished 2023-06-07 16:20:44,470 [Thread-6] INFO zingg.model.Model - threshold while predicting is 0.5 2023-06-07 16:20:44,589 [Thread-6] INFO org.apache.spark.ml.util.Instrumentation - [aa3d8dc3] training finished 2023-06-07 16:20:44,600 [Thread-6] INFO zingg.TrainingDataFinder - Writing uncertain pairs 2023-06-07 16:20:47,788 [Thread-6] WARN zingg.util.PipeUtil - Writing output Pipe [name=null, format=parquet, preprocessors=null, props={location=/home/sween/Desktop/PIDTOO/api/zingg/models/700/trainingData//unmarked/}, schema=null] Now, we train the Cylon with supervised learning, lets give it a go. Label 2023-06-07 16:24:06,122 [Thread-6] INFO zingg.Labeller - Processing Records for CLI Labelling Labelled pairs so far : 37/101 MATCH, 64/101 DO NOT MATCH, 0/101 NOT SURE Current labelling round : 0/20 pairs labelled +----------------+------+---------------+----------+---------+-----------------+------+-------------------+ |Key |ID |IdentifierValue|NameFamily|NameGiven|AddressPostalCode|Gender|z_source | +----------------+------+---------------+----------+---------+-----------------+------+-------------------+ |Patient/05941921|303302|null |davis |derek |28251 |male |InterSystemsFHIRSQL| |Patient/05869254|263195|null |davis |terek |27|07 |male |InterSystemsFHIRSQL| +----------------+------+---------------+----------+---------+-----------------+------+-------------------+ Zingg predicts the above records MATCH with a similarity score of 0.51 What do you think? Your choices are: No, they do not match : 0 Yes, they match : 1 Not sure : 2 To exit : 9 Please enter your choice [0,1,2 or 9]: Now, do what the cylon says, and do this a lot, maybe during meetings or on the Red Line on your way or heading home from work (Get it? Train). You'll need enough labels for the train phase, where Zingg goes to town and works its magic finding duplicates. bash scripts/zingg.sh --properties-file config/zingg-iris.conf --run pidtoo-iris/FHIRPatient-IRIS.py train Ok, here we go, lets get our results: bash scripts/zingg.sh --properties-file config/zingg-iris.conf --run pidtoo-iris/FHIRPatient-IRIS.py match We now have some results back in the PIDTOO.PatientDups table that gets us to the point of things. We are going to use @Dmitry.Maslennikov 's sqlalchemy sorcery to connect via the notebook and inspect our results. from sqlalchemy import create_engine # FHIRSQL Builder Cloud Instance engine = create_engine("iris://fhirsql:1234@3.131.15.187:1972/FHIRDB") conn = engine.connect() query = ''' SELECT TOP 20 z_cluster, z_maxScore, z_minScore, NameGiven, NameFamily, COUNT(*) FROM PIDTOO.PatientDups GROUP BY z_cluster HAVING COUNT(*) > 1 ''' result = conn.exec_driver_sql(query) print(result) It takes a little bit to interpret the results, but, here is the result of the brief training on loading the NC voters data into FHIR. loadncvoters2fhir.py © import os import requests import json import csv ''' recid,givenname,surname,suburb,postcode 07610568,ranty,turner,statesvikle,28625 ''' for filename in os.listdir("."): print(filename) if filename.startswith("ncvr"): with open(filename, newline='') as csvfile: ncreader = csv.reader(csvfile, delimiter=',') for row in ncreader: patid = row[0] given = row[1] family = row[2] postcode = row[4] patientpayload = { "resourceType": "Patient", "id": patid, "active": True, "name": [ { "use": "official", "family": family, "given": [ given ] } ], "gender": "male", "address": [ { "postalCode": postcode } ] } print(patientpayload) url = "https://fhir.h7kp7tr48ilp.workload-nonprod-fhiraas.isccloud.io/Patient/" + patid headers = { 'x-api-key': '1234', 'Content-Type': 'application/fhir+json' } response = requests.request("PUT", url, headers=headers, data=json.dumps(patientpayload)) print(response.status_code) The output Zingg gave us is pretty great for the minimal effort I put in training things in between gas lighting. z_cluster is the id Zingg assigns to the duplicates, I call it the "dupeid", just understand that is the identifier of the you want to query to examine the potential duplicates... Im accustomed to trusting a minScore of 0.00 and anything over 0.90 for a score for examination. (189, 0.4677305247393828, 0.4677305247393828, 'latonya', 'beatty', 2) (316, 0.8877195988867068, 0.7148998161578, 'wiloiam', 'adams', 5) (321, 0.5646965557084127, 0.0, 'mar9aret', 'bridges', 3) (326, 0.5707960437038071, 0.0, 'donnm', 'johnson', 6) (328, 0.982044685998597, 0.40717509762282955, 'christina', 'davis', 4) (333, 0.8879795543643093, 0.8879795543643093, 'tiffany', 'stamprr', 2) (334, 0.808243240184001, 0.0, 'amanta', 'hall', 4) (343, 0.6544295790716498, 0.0, 'margared', 'casey', 3) (355, 0.7028336885619522, 0.7028336885619522, 'dammie', 'locklear', 2) (357, 0.509141927875999, 0.509141927875999, 'albert', 'hardisfon', 2) (362, 0.5054569794103886, 0.0, 'zarah', 'hll', 6) (366, 0.4864567456390275, 0.4238040425261962, 'cara', 'matthews', 4) (367, 0.5210329255531461, 0.5210329255531461, 'william', 'metcaif', 2) (368, 0.6431091575056218, 0.6431091575056218, 'charles', 'sbarpe', 2) (385, 0.5338624802449684, 0.0, 'marc', 'moodt', 3) (393, 0.5640435106505274, 0.5640435106505274, 'marla', 'millrr', 2) (403, 0.4687497402769476, 0.0, 'donsna', 'barnes', 3) (407, 0.5801171648347092, 0.0, 'veronicc', 'collins', 35) (410, 0.9543673811569922, 0.0, 'ann', 'mason', 7) (414, 0.5355771790403805, 0.5355771790403805, 'serry', 'mccaray', 2) Let's pick the "dupeid" 410 and see how we did, the results seem to think there are 7 duplicates. Ok, so there are the 7 records, with variable scores... Lets dial it in a little bit more and only report back a score of higher than .90. Wooo! So now, if you recall, we have the `MatchType.DONT_USE` for `Key` in our match criteria showing up in our output, but you know what? USE IT! https://fhir.h7kp7tr48ilp.workload-nonprod-fhiraas.isccloud.io/Patient/04892325 https://fhir.h7kp7tr48ilp.workload-nonprod-fhiraas.isccloud.io/Patient/02049329 These are the FHIR patient resource ids in the FHIR repository we have identified as duplicates and require remediation.🔥
Announcement
Emily Geary · Jun 1, 2023

InterSystems HL7® Interface Specialist Certification Exam is now LIVE!

Hello Community, The Certification Team of InterSystems Learning Services is excited to announce the release of our new InterSystems HL7® Interface Specialist exam. This is an updated and rebranded version of our previous HL7 exam, formerly know as HealthShare Health Connect HL7® Interface Specialist. It is now available for purchase and scheduling in InterSystems exam catalog. Potential candidates can review the exam topics and the practice questions to help orient them to exam question approaches and content. Candidates who successfully pass the exam will receive a digital certification badge that can be shared on social media accounts like LinkedIn. If you are new to InterSystems Certification, please review our program pages that include information on taking exams, exam policies, FAQ and more. Also, check out our Organizational Certification, which can help your organization access valuable business opportunities and establish itself as a reliable provider of InterSystems solutions in our marketplace. If you have ideas about creating new certifications that can help you advance your career, the Certification Team of InterSystems Learning Services is always open to ideas and suggestions. Please contact us at certification@intersystems.com if you would like to share any ideas. Looking forward to celebrating your success, Emily Geary - Certification Operation Specialist, InterSystems