Search

Clear filter
Article
Renan Lourenco · Jan 12, 2021

CSV Anonymizer Powered by InterSystems IRIS®

Tiny web application that allows you to anonymize CSV files. Based on [InterSystems IRIS®](https://www.intersystems.com/products/intersystems-iris) **Version:** _store/intersystems/iris-community:2020.3.0.221.0_ ## Application Sample CSV where Date of Birth and Sex will remain untouched, while the rest should be anonymized. ![before](https://github.com/OneLastTry/iris-csv-anonymizer/raw/master/assets/before.png) The application recognizes the header columns and allows the user to chose which ones to ignore. ![demo](https://github.com/OneLastTry/iris-csv-anonymizer/raw/master/assets/demo.gif) After processing. ![after](https://github.com/OneLastTry/iris-csv-anonymizer/raw/master/assets/after.png) ## Setup **Make sure you have Docker up and running before starting.** ### Option 1 Recommended in case you just want to get the application up and running. ```bash docker run --name anonymizer --publish 9091:1972 --publish 9092:52773 rlourenc/iris-csv-anonymizer:1.0 ``` ### Option 2 Recommended in case you want to play with the source code and twiki it to your taste. Clone the repository to your desired directory ```bash git clone https://github.com/OneLastTry/iris-csv-anonymizer.git ``` Once the repository is cloned, execute: **Always make sure you are inside the main directory to execute docker-compose commands.** ```bash docker-compose up ``` ## Access You can now access the application via [http://localhost:9092/appl/Anonymizer.Web.Application.zen](http://localhost:9092/appl/Anonymizer.Web.Application.zen)
Announcement
Anastasia Dyubaylo · Jan 20, 2021

InterSystems Developer Community Survey 2020

Hey Developers, Thank you so much for being with InterSystems Developer Community for yet another year! More than 8K+ users are already registered in our community! And day by day our team is trying to make it better and more useful for InterSystems developers. We want to know how helpful the Developer Community is for you today. Please go through this short survey which will let us know what do you think and what could be improved! 👉🏼 Developer Community Survey 2020 👈🏼 Note: The survey will take less than 5 minutes to complete. Please take part in our survey. Any of your feedback is also welcome in the comments on this post! Enjoy! 😉 Great Hi Developers, Please tell us what you think about Developer Community! Your thoughts and ideas are very important for us. Hey guys, Only a few days left! Please take a quick survey and help us become better: 👉🏼 Developer Community Survey 2020 👈🏼
Announcement
Anastasia Dyubaylo · Apr 7, 2022

InterSystems Global Contest Bonuses Results

Hi contestants! Here are the results of the bonus collections the applications of the Globals Contest accomplished. Here are the projects that scored it: Project Data-model implementation Functional index implementation Data Move usage Embedded Python Docker ZPM Online Demo First Article on DC Second Article on DC Code Quality Video on YouTube Total Bonus Nominal 5 5 3 4 2 2 2 2 1 1 3 30 Globals: Embedded Python vs. ObjectScript 4 2 2 2 2 1 13 GlobalToJSON-Compact 2 2 2 2 1 9 GlobalToJSON-Efficient 2 2 2 2 1 9 GlobalToJSON-XL-Academic 2 2 2 2 1 3 12 Spreadsheets based on globals 2 1 3 Student score query 0 iris-globals-contest 2 2 2 2 1 9 blockchain - [ IRIS python ] - - 0 zpm-generate-ui 2 2 2 2 1 9 python-globals-serializer-example 4 2 2 2 2 1 13 global-archiver 2 2 2 6 iris-globals-graphDB 5 2 2 2 3 14 React-UI-Global 2 2 4 globals-tool 2 2 2 6 global-mindmap 2 2 2 2 1 1 3 13 Cubes 3 3 global-name-search 2 2 Please apply with your comments here in the posts or in Discord. I have a second article already: https://community.intersystems.com/post/unit-tests-quality-your-objectscript-code. So, I claim second article bonus. Thanks! Cool! New version of the global-mindmap was sent for approval, now supporting ZPMPlease, approve the new version and compute zpm bonus I have a second article already: https://community.intersystems.com/post/unit-tests-quality-your-objectsc.... So, I claim second article bonus. Thanks! Hi guys! Could you please add the 1st article bonus for python-globals-serializer-example? Article: https://community.intersystems.com/post/serializing-python-objects-globals Thanks! Globals: Embedded Python vs. ObjectScript is also available on Online Demo since its first release. It is also listed in OEX Directory "Products with Demo"Pls adjust the list accordingly
Announcement
Anastasia Dyubaylo · Jun 6, 2022

InterSystems Grand Prix Contest Winners

Hey Community, We are super excited to announce the winners of the InterSystems Grand Prix Contest. This competition was an absolute success! To show our appreciation to our amazing contestants we doubled the prizes for runners-up! So let's meet the winners... Experts Nomination 🥇 1st place and $7,000 go to the Water Conditions in Europe created by @Evgeniy.Potapov 🥈 2nd place and $5,000 go to the CloudStudio created by @Sean.Connelly 🥉 3rd place and $1,500 go to the iris-megazord created by @José.Pereira, @Henrique.GonçalvesDias and @Henry.HamonPereira 🥉 3rd place and $1,500 go to the iris-fhir-client created by @Muhammad.Waseem More winners: 🏅 $200 go the Docker InterSystems Extension created by @Dmitry.Maslennikov 🏅 $200 go the FHIR Patient Viewer created by @Dan.Berges 🏅 $200 go the test-data created by @Oliver.Wilms 🏅 $200 go the webterminal-vscode created by @John.Murray 🏅 $200 go the ObjectScript-Syntax-For-GitLab created by @Lorenzo.Scalese 🏅 $200 go the iris-mail created by @Oliver.Wilms 🏅 $200 go the FHIR Pseudonymization Proxy created by @Marcus.Wurlitzer 🏅 $200 go the Disease Predictor created by @Yuri.Gomes 🏅 $200 go the M-N-Contests created by @Robert.Cemper1003 🏅 $200 go the FIT REST Operation Framework created by @Craig.Regester 🏅 $200 go the cryptocurrency-rate-forecasting created by @Oleh.Dontsov 🏅 $200 go the apptools-infochest created by @MikhailenkoSergey 🏅 $200 go the IRIS import manager created by @Oleh.Dontsov 🏅 $200 go the CrossECP-IRIS created by @Robert.Cemper1003 🏅 $200 go the production-monitor created by @Oliver.Wilms 🏅 $200 go the ESKLP created by @Aleksandr.Kalinin6636 🏅 $200 go the db-migration-using-SQLgateway created by @Robert.Cemper1003 🏅 $200 go the apptools-admin created by @MikhailenkoSergey Community Nomination 🥇 1st place and $3,000 go to the iris-megazord created by @José.Pereira, @Henrique.GonçalvesDias and @Henry.HamonPereira 🥈 2nd place and $2,000 go to the iris-fhir-client created by @Muhammad.Waseem 🥉 3rd place and $1,000 go to the Docker InterSystems Extension created by @Dmitry.Maslennikov THANK YOU ALL! OUR BIG CONGRATULATIONS TO ALL PARTICIPANTS AND WINNERS! We see all the hard work in your participation, and we would like to thank you for devoting your time and building a project for the InterSystems contest. 🙌 See you in the next contest! Congratulations everyone ! And thank you for voting CloudStudio second in the experts nomination, great momentum for the project. Congratulations everyone. It was great contest. Congratulations everyone! and Congratulation to organizers for arranging this great event. Enjoy watching a new promo video on InterSystems Developers YouTube: 🎉 InterSystems Grand Prix Contest Winners 🎉 Cool! 🤩
Announcement
Evgeny Shvarov · Feb 23, 2022

InterSystems Python Contest Bonuses Results

Hi contestants! Here are the results of the bonus collections the applications of the Python Contest accomplished. Here are the projects that scored it: Project Embedded Python Python Native API Python Pex NoObjectScriptLine Questionnaire Docker ZPM Online Demo First Article on DC Second Article on DC Video on YouTube Total Bonus Nominal 4 3 3 5 2 2 2 2 2 1 3 29 AI Image Object Detector 4 2 2 8 appmsw-sql2xlsx 4 2 2 2 2 2 14 GlobalToJSON-embeddedPython 4 2 2 2 2 2 1 3 18 GlobalToJSON-ePython-pure 4 5 2 2 2 2 2 1 3 23 IRIS Text2Audio 4 2 2 8 IRIS-Database-and-Machine-Learning... 5 2 7 iris-python-dashboards 4 5 2 2 2 2 1 18 django-iris 4 5 2 11 iris-python-apps 4 5 2 2 2 1 16 blockchain - [ IRIS python ] 4 2 6 DIMSE Iris Dicom Fhir Service 4 2 6 Django-Interop 4 3 2 2 11 Please apply with your comments here in the posts or in Discord. Dear participants, To get your bonus for the Questionnaire (2 extra points), please give us your feedback at https://www.surveymonkey.com/r/QP68JY9 @Yuri.Gomes @MikhailenkoSergey @Robert.Cemper1003 @Fatian.Wu @Evgeniy.Potapov @Dmitry.Maslennikov @Muhammad.Waseem @davimassaru.teixeiramuta @Ron.Sweeney1582 @Fernando.VianaMaia
Question
Vivek Nayak · Feb 25, 2022

InterSystems API Management installation issue

I have performed the suggested steps given in the below link for IAM installation but got an error "docker. errors.NullResource: Resource ID was not provided[21528] Failed to execute script docker-compose" https://docs.intersystems.com/components/csp/docbook/Doc.View.cls?KEY=CIAM_install There seems to be environment variables that are not set - check this section of the docs https://docs.intersystems.com/components/csp/docbook/DocBook.UI.Page.cls?KEY=CIAM_install#CIAM_install_envvar it explains the environment variables used by docker-compose. Thanks, Juanito, Yes, environment variables are not set. I was entering the below details in the "Run the setup script and start IAM" step. Let me know If I missed something. docker-compose generates this error when ISC_IAM_IMAGE isn't set. I have this problem when I forget to "source" the iam_setup.sh script in other words running the script via source exports the environment variables, but just running the script doesn't. source ./scripts/iam-setup.sh
Announcement
Anastasia Dyubaylo · May 6, 2022

[Video] Using SQL with InterSystems IRIS

Hey Developers, See how you can get high-performance relational access using SQL to manage data within your InterSystems products: ⏯ Using SQL with InterSystems IRIS Subscribe to the InterSystems Developers YouTube channel and stay tuned! That's great.Right at the end it says you can use your favourite SQL client to write SQL code against IRIS. Does this include SQL Server Management Studio, only I am not being successful in getting this achieved at my work?What SQL clients are best used for IRIS?Many thanks. I should add, I'm not having much success in terms of reporting. We don't have (or I can't get) the Management Portal, and I can't seem to use SSMS to write queries against the data, and in Power BI, the IRIS connector isn't allowed for dataflows.I am missing something super obvious, I know I am!What tools do other people use to write reports against IRIS?Thanks.
Announcement
Anastasia Dyubaylo · Aug 3, 2022

[Video] Integration Features of InterSystems IRIS

Hey Community, See how data integration features in InterSystems IRIS data platform enable you to easily connect your systems, processes, and people: ⏯ Integration Features of InterSystems IRIS Stay tuned for the latest videos on InterSystems Developers YouTube!
Announcement
Anastasia Dyubaylo · May 19, 2022

[Video] InterSystems IRIS FHIR Server

Hey Community, Meet the new video on InterSystems Developers YouTube channel: ⏯ InterSystems IRIS FHIR Server The InterSystems IRIS FHIR Server helps you create healthcare applications that consume and create FHIR resources without having to create a FHIR infrastructure yourself. Learn how to use the service to bring your applications to market faster and with confidence in the availability, speed, and reliability of your data store. 🗣 Presenter: @Patrick.Jamieson3621, Product Manager, IRIS for Health, InterSystems Like and share! And here is the portal where you can start using the FHIR accelerator.
Announcement
Anastasia Dyubaylo · May 27, 2022

[Video] InterSystems FHIR Transformation Service

Hey Community, Learn how to transform your healthcare data into HL7 FHIR and seamlessly convert and populate Amazon HealthLake with InterSystems FHIR Transformation Service: ⏯ InterSystems FHIR Transformation Service 🗣 Presenter: @Anton.Umnikov, Senior Cloud Solutions Architect, InterSystems Don't miss the latest videos for InterSystems developers on our YouTube!
Announcement
Olga Zavrazhnova · Mar 18, 2022

InterSystems at MIT Hacking Medicine GRANDHACK

Next big healthcare hackathon is approaching! MIT Hacking Medicine will take place on April 15-17 in Boston, and it is back in person this year! InterSystems will be a Gold Sponsor with "Best Use of InterSystems FHIR Services" challenge and great prizes.Learn more about the challenge here. Registration is now open - don't hesitate to register!
Announcement
Anastasia Dyubaylo · Jun 17, 2022

InterSystems Full Stack Contest 2022

Hello and welcome to the 21st InterSystems programming contest! 🏆 InterSystems Full Stack Contest 2022 🏆 Duration: June 27 - July 17, 2022 In prizes: $10,000 The topic 💡 Full Stack Applications 💡 Develop a Full Stack solution using the InterSystems IRIS, InterSystems IRIS For Health, or IRIS Cloud Service as a backend. By full stack we mean a frontend web or mobile application which inserts, updates, or deletes data in InterSystems IRIS via REST API, Native API, ODBC/JDBC, or Embedded Python. What's more? This time we decided to invite developers to try their skills in solving one of the global challenges. We encourage you to join this contest with solutions focused on tackling climate change issues:1) You will receive a special bonus if your application can solve problems related to global warming and climate change. 2) There will also be another bonus if you prepare and submit to Open Exchange a dataset related to the global warming and climate change. So! We’re looking forward to your innovative contributions for an even more sustainable world. Hone your digital skills to develop solutions for climate issues! General Requirements: Accepted applications: new to Open Exchange apps or existing ones, but with a significant improvement. Our team will review all applications before approving them for the contest. The application should work either on IRIS Community Edition or IRIS for Health Community Edition or IRIS Advanced Analytics Community Edition. The application should be Open Source and published on GitHub. The README file to the application should be in English, contain the installation steps, and contain either the video demo or/and a description of how the application works. Contest Prizes: 1. Experts Nomination – winners will be selected by the team of InterSystems experts: 🥇 1st place - $4,000 🥈 2nd place - $2,000 🥉 3rd place - $1,000 🌟 4-15th places - $100 2. Community winners – applications that will receive the most votes in total: 🥇 1st place - $1,000 🥈 2nd place - $750 🥉 3rd place - $500 ✨ Global Masters badges for all winners included! Note: If several participants score the same amount of votes, they all are considered winners, and the money prize is shared among the winners. Important Deadlines: 🛠 Application development and registration phase: June 27, 2022 (00:00 EST): Contest begins. July 10, 2022 (23:59 EST): Deadline for submissions. ✅ Voting period: July 11, 2022 (00:00 EST): Voting begins. July 17, 2022 (23:59 EST): Voting ends. Note: Developers can improve their apps throughout the entire registration and voting period. Who Can Participate? Any Developer Community member, except for InterSystems employees (ISC contractors allowed). Create an account! Developers can team up to create a collaborative application. Allowed from 2 to 5 developers in one team. Do not forget to highlight your team members in the README of your application – DC user profiles. Helpful Resources: ✓ InterSystems IRIS Docker templates suitable for a Full Stack application: IRIS Full Stack template Basic InterSystems IRIS Docker template IRIS REST API template Native API template IntegratedML template IRIS Analytics template isc-ipm-js isc-perf-ui isc-json isc-rest isc-codetidy ✓ Online courses: Implementing RESTful Applications ✓ Videos: REST API design and Development REST API in 5 minutes Data-Driven Web Apps ✓ For beginners with IRIS: Build a Server-Side Application with InterSystems IRIS Learning Path for beginners ✓ For beginners with ObjectScript Package Manager (ZPM): How to Build, Test and Publish ZPM Package with REST Application for InterSystems IRIS Package First Development Approach with InterSystems IRIS and ZPM ✓ How to submit your app to the contest: How to publish an application on Open Exchange How to submit an application for the contest Need Help? Join the contest channel on InterSystems' Discord server or talk with us in the comment to this post. We can't wait to see your projects! Good luck 👍 By participating in this contest, you agree to the competition terms laid out here. Please read them carefully before proceeding. Developers! Don't miss the opportunity to join the Full Stack Contest Kick-off Webinar! The webinar starts on Monday, June 27 – at 09:00 AM EDT. We are waiting for your participation! https://www.worldbank.org/en/topic/climatechange can help contestants identify important issues. NOAA is the first place to look for climate data: https://www.climate.gov/maps-data USGS is a great source of free satellite imagery: https://earthexplorer.usgs.gov/ Hey Community, Please check out Three new Open Exchange packages by @Timothy.Leavitt! That can really help accelerate modern full-stack application development on IRIS. Developers! There are only five days until the end of the registration phase! Don't miss the opportunity to join the InterSystems Full Stack Contest 2022! Hi everyone! I’m happy to see that corporation where I worked for 12 years is really care about problem of climate change. Now I’m studying in the University and my major is close to climate change topic. That’s why I want to add my 2 cents and share my opinion which applications done be developers could help with climate change issue. First, I want to say that analysis of UN, World Bank and other organizations data related to climate change in my opinion will not change anything, just give information that “something is happening”. But developers can make a real positive change in this area implementing applications which help decrease energy consumption. Because largest part of global warming is related to warming produced during energy production in energy production plants from non-renewable energy sources like coal, oil products, gas. That’s why in my point of view all applications which help to decrease warming which is produced during energy production or decrease energy consumption are helpful. For health industry related applications examples are: Telemedicine Hospitalization planning applications … And all others which minimize patients travel especially for large distance to minimize petrol consumption by cars and planes, and electricity for trains and metro. Non-industry related applications like: Distant learning and certification Teleconference Applications which support remote work for workgroups And others – for the same reason: minimization energy consumption for travel. Health trackers which motivate people to use feet and bicycle for short term travel and don’t use cars. Food production and consumption is energy intensive process as well. It looks small for one person, but for billions of people it is huge. Dietary related applications which help to decrease losses of products on each stage of production, delivery chain and consumption, decrease meat consumption and use more balanced diet, because meat production requires is at least 10 time more energy compared to vegetable proteins. Smart City applications which optimize energy consumption on city level. It includes traffic monitoring and control to minimize traffic jams (decreasing petrol and electricity consumption), and motivates people to use public transport which decreases further energy consumption. Smart Home applications which help to optimize energy consumption on level of house. Applications which help people to use right way to recycle old electric and electronic equipment, especially fridges and freezers. Old fridges and freezers contain old standard refrigerating medium, which are 1000 times more dangerous for ozone layer and climate change compared to carbon dioxide. I hope this text will help developers to understand that small and ordinary applications which they implement now could really help to solve global important problem of climate change. Good luck in the Contest! I agree! We all have to do our part! Hey, Devs! Today is the last day to upload your applications! Three apps have been uploaded to the contest: interoperability-manager by @Oliver.Wilms iris-for-money by @Oliver.Wilms iris-climate-change by @Muhammad.Waseem Who is going to be the next contester?Only a few hours left to know!
Article
Yuri Marx · Jan 12, 2022

JSON Schema applied to InterSystems IRIS

The JSON is a data document free of types and validation rules. However, in some scenarios it is important that the JSON document has type and business rules validation, especially in interoperability scenarios. This article demonstrates how you can leverage a market-defined JSONSchema technology that is open for everyone to use and do advanced validations. About JSON According to json.org, “JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language”. (Source: https://www.json.org/json-en.html). An example of a JSON document could be: About JSON Schema According to json-schema.org, “JSON Schema is a vocabulary that allows you to annotate and validate JSON documents.”.If JSON is easy for humans to read, write and understand, why do we need to apply a schema to validate JSON documents/content? The main reasons are: To define a clear contract to interoperate JSON based data between partners and their applications. To detail, document and describe your JSON files, making it easier to use. To validate JSON data for automated testing, ensuring the quality of the requests and responses. To generate JSON sample and/or real data from the JSON Schema. To apply business/validation rules into JSON content, instead of creating language dependent validations. To support the “contract first approach” on the development of REST API. More details on https://swagger.io/blog/api-design/design-first-or-code-first-api-development/. JSON Syntax To understand the role of JSON Schema in a JSON game, it is necessary to know more about JSON syntax. The JSON syntax is derived from JavaScript object notation syntax, so, the syntax rules are equal to JavaScript objects. The JSON rules are next (source: https://www.w3schools.com/js/js_json_syntax.asp): Data must be specified in name/value pairs. Data must be separated by commas. Curly braces hold objects. Square brackets hold arrays. The JSON Data consists of a name/value pair with a field name (in double quotes), followed by a colon and followed by a value. Example: JSON names require double quotes and refers to JavaScript objects and to InterSystems IRIS ObjectScript Dynamic Object (%Library.DynamicObject) too. More details in https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GJSON_intro#GJSON_intro_methods. In JSON, values must be one of the following data types: A string, must be between “”. Sample: “a string”. A number, must be integer or decimal values. Sample: 10 or 20.23. An object, must be between {}. Sample: {“firstName”: “John”}. An array, must be between []. Sample: [{“firstName: “John”},{“firstName”: “Anna”}]. A Boolean, must be true or false. Sample: {“isDead”: false}. A null, to set no value. When you apply a JSON document to a language object, these syntax rules are validated, but sometimes, it is necessary to establish business rules too. JSON Schema is used for this, to expand JSON basic rules with rules specified in JSON Schema documents.The InterSystems IRIS has full support for JSON basic rules, and JSON content is very elegant to read or write.. It is easier than any other programming language, see a sample: InterSystems IRIS Object Script writing JSON Java writing JSON set dynObject1 = ##class(%DynamicObject).%New()set dynObject1.SomeNumber = 42set dynObject1.SomeString = "a string"set dynObject1.SomeArray = ##class(%DynamicArray).%New()set dynObject1.SomeArray."0" = "an array element"set dynObject1.SomeArray."1" = 123dynObject1.%ToJSON() //First EmployeeJSONObject employeeDetails = new JSONObject();employeeDetails.put("firstName","Lokesh");employeeDetails.put("lastName", "Gupta");employeeDetails.put("website","howtodoinjava.com");JSONObject employeeObject = new JSONObject(); employeeObject.put("employee", employeeDetails); //Second EmployeeJSONObject employeeDetails2 = new JSONObject();employeeDetails2.put("firstName", "Brian");employeeDetails2.put("lastName", "Schultz");employeeDetails2.put("website", "example.com"); JSONObject employeeObject2 = new JSONObject(); employeeObject2.put("employee", employeeDetails2); //Add employees to listJSONArray employeeList = new JSONArray();employeeList.add(employeeObject);employeeList.add(employeeObject2);employeeList.toJSONString(); While ObjectScript is a dynamic language, allowing setting JSON properties as object properties, other languages, like Java, force you to set key and values inside objects. On the other hand, Java and other languages support JSON Schema using open source and commercial packages, but the ObjectScript does not support JSON Schema at the moment. See the list from json-schema.org (source: https://json-schema.org/implementations.html): NET Json.NET Schema 2019-09, draft-07, -06, -04, -03 (AGPL-3.0-only) JsonSchema.Net 2020-12, 2019-09, draft-07, -06 (MIT) C++ f5-json-schema draft-07 (Boost Software License 1.0) JSON schema validator for JSON for Modern C++ draft-07 (MIT) Valijson draft-07 header-only library, works with many JSON parser implementations (BSD-2-Clause) Jsoncons draft-07 header-only library (Boost Software License 1.0) Java Snow 2019-09, draft-07, -06 Uses Maven for the project and Gson under the hood. (GNU Affero General Public License v3.0) Vert.x Json Schema 2019-09, draft-07 includes custom keywords support, custom dialect support, asynchronous validation (Apache License, Version 2.0) Everit-org/json-schema draft-07, -06, -04 (Apache License 2.0) Justify draft-07, -06, -04 (Apache License 2.0) Networknt/json-schema-validator draft-07, -06, -04 Support OpenAPI 3.0 with Jackson parser (Apache License 2.0) Jsonschemafriend 2019-09, draft-07, -06, -04, -03 (Apache License 2.0) JavaScript Ajv 2019-09, 2020-12, draft-07, -06, -04 for Node.js and browsers - supports user-defined keywords and $data reference (MIT) Djv draft-06, -04 for Node.js and browsers (MIT) Hyperjump JSV 2019-09, 2020-12, draft-07, -06, -04 Built for Node.js and browsers. Includes support for custom vocabularies. (MIT) Vue-vuelidate-jsonschema draft-06 (MIT) @cfworker/json-schema 2019-09, draft-07, -06, -04 Built for Cloudflare workers, browsers, and Node.js (MIT) Python jschon 2019-09, 2020-12 (MIT) jsonschema 2019-09, 2020-12, draft-07, -06, -04, -03 (MIT) fastjsonschema draft-07, -06, -04 Great performance thanks to code generation. (BSD-3-Clause) jsonschema-rs draft-07, -06, -04 Python bindings to Rust’s jsonschema crate (MIT) This is a sample how to use JSON schema to validate JSON content (using Python, source: https://jschon.readthedocs.io/en/latest/): Fortunately, IRIS allows you to create packages or frameworks using the programming language of your choice (.NET or Java using PEX or Language Server). So, it is possible to create an IRIS extension package to handle JSON Schema in IRIS. Another possibility is to use Embedded Python and create a JSON validation method class (in the version 2021.2+). Extending the InterSystems IRIS to support JSON Schema using Java Language Server (Java Gateway) Among Java frameworks, the networknt/json-schema-validator is used the most to validate JSON using JSON Schema.To use this Java framework, you can get the application https://openexchange.intersystems.com/package/IRIS-JSON-Schema-Validator. This application has the following files and folders: 1. The folder jgw has the necessary files to create a Java Gateway (bridge to allow communication between Java and IRIS classes); 2. The iris-json-schema-1.0.0.jar has the Java classes and libraries (including json-schema-validator) to service JSON Schema validations; 3. The JSONSchemaValidator.cls has the ObjectScript code to use the Java class and do JSON validations using JSON schema by the validation rules; 4. The Dockerfile and docker-compose.yml run the Java Gateway and the IRIS as docker instances. The Java Class has a validation method, which uses the framework json-schema-validator to validate the JSON Schema and the JSON, and to return the validation results. See the Java Code: Java Class for JSON Schema Validation package dc.irisjsonschema; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Set; import java.util.stream.Collectors; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.networknt.schema.JsonSchema; import com.networknt.schema.JsonSchemaFactory; import com.networknt.schema.SpecVersion; import com.networknt.schema.ValidationMessage; public class JSONSchemaService { public String validate(String jsonSchemaContent, String jsonContent) { // create instance of the ObjectMapper class ObjectMapper objectMapper = new ObjectMapper(); // create an instance of the JsonSchemaFactory using version flag JsonSchemaFactory schemaFactory = JsonSchemaFactory.getInstance(SpecVersion.VersionFlag.V201909); try { // read data from the stream and store it into JsonNode JsonNode json = objectMapper.readTree(jsonContent); // get schema from the schemaStream and store it into JsonSchema JsonSchema schema = schemaFactory.getSchema(jsonSchemaContent); // create set of validation message and store result in it Set<ValidationMessage> validationResult = schema.validate(json); if(validationResult.isEmpty()) { return "{\"message\": \"JSON is valid\", \"valid\":true}"; } else { return "{\"message\": \"" + validationResult.toString() + "\", \"valid\":false}"; } } catch (JsonProcessingException e) { return e.getMessage(); } } } The InterSystems IRIS uses this Java validation method to validate JSON content. To do that it is necessary to create a JAR file with the validate class inside (iris-json-schema-1.0.0.jar) and to configure a Java Gateway (bridge between Java and IRIS communication), allowing ObjectScript to call the Java methods.The ObjectScript code which uses the Java Class and the JSONSchemaValidator class is presented here: Final Java Class read to Validate JSON inside IRIS /// Validate JSON documents using JSON Schema documents Class dc.irisjsonschema.JSONSchemaValidator { /// Get json and json schema em return validation results ClassMethod Validate(JSONSchemaContent As %String, JSONContent As %String, Output ValidationResult As %String) As %Status { Set sc = $$$OK // Connect a Gateway instance to server JavaGateway on the host machine set GW = ##class(%Net.Remote.Gateway).%New() set st = GW.%Connect("jgw", "55555", "IRISAPP",,) //instantiate java class set JSONSchemaValidator = ##class(%Net.Remote.Object).%New(GW,"dc.irisjsonschema.JSONSchemaService") //validate the JSON using a JSON Schema set ValidationResult = JSONSchemaValidator.validate(JSONSchemaContent, JSONContent) Write ValidationResult Return sc } With this ObjectScript class and the Validate class method, it is possible to use any JSON content and any JSON Schema definition to validate basic and advanced validation rules.To see this, execute these steps: 1. Go to https://openexchange.intersystems.com/package/IRIS-JSON-Schema-Validator 2. Git-clone the repository into any local directory $ git clone https://github.com/yurimarx/iris-json-schema.git 3. Open the terminal in this directory and run it: $ docker-compose build 4. Run the IRIS container with your project: $ docker-compose up 5. Go to the IRIS terminal (open a new VSCode Terminal) docker exec -it iris-json-schema_iris_1 bash iris session iris 6. Change to the IRISAPP namespace set $namespace = "IRISAPP" 7. Get a sample JSON Schema set jsonSchema = ##class(dc.irisjsonschema.JSONSchemaValidator).GetJSONSchema() 8. Get a sample valid JSON set jsonContent = ##class(dc.irisjsonschema.JSONSchemaValidator).GetValidSampleJSON() 9. Get a validation equals to valid set st = ##class(dc.irisjsonschema.JSONSchemaValidator).Validate(jsonSchema,jsonContent,.result) write result 10. Now, get a sample INVALID JSON set jsonContent = ##class(dc.irisjsonschema.JSONSchemaValidator).GetInvalidSampleJSON() 11. After that, get validation equals to INVALID set st = ##class(dc.irisjsonschema.JSONSchemaValidator).Validate(jsonSchema,jsonContent,.result) write result 12. The JSON Schema used was: JSON Schema used to define the validation rules { "$schema": "https://json-schema.org/draft/2019-09/schema#", "type": "object", "title": "Movie art", "description": "Information about actors", "additionalProperties": true, "required": [ "name", "artist", "description", "tags" ], "properties": { "name": { "type": "string", "description": "Painting name" }, "artist": { "type": "string", "maxLength": 50, "description": "Name of the artist" }, "description": { "type": [ "string", "null" ], "description": "Painting description" }, "tags": { "type": "array", "items": { "$ref": "#/$defs/tag" } } }, "$defs": { "tag": { "type": "string", "enum": [ "action", "suspense", "UK", "famous", "license", "kill" ] } }} This JSON Schema configured the fields and the tags array with limited values (enum) as required. The types of the JSON fields are defined too. So, for this schema the following JSON Object is valid: set obj = {}set obj.name = "Agent 007"set obj.artist = "Pierce Brosman"set obj.description = "007 actor"set tags = ["license","kill"]set obj.tags = tags All properties use the right data type and the tags use values inside values allowed in the Schema for this array. Now, see a JSON Object invalid: set obj = {}set obj.name = "Agent 007"set obj.artist = "Pierce Brosman"set obj.description = 1set tags = []set tags."0" = "license" set tags."1" = "love"set obj.tags = tags This object sets an integer property to a description (the valid type is string) and sets the value “love”, out of valid values allowed to array tags.The site https://json-schema.org/ has tools, samples and learning resources to learn on how to validate and write advanced validation rules using JSON Schema.
Announcement
Evgeny Shvarov · Jan 12, 2022

InterSystems Datasets Contest Bonuses Results

Hi contestants! We've introduced a set of bonuses for the projects for the Datasets Contest! Here are the projects that scored it: Project Demo Repo LOAD DATA Questionnaire Unique Real Dataset Docker ZPM Online Demo Code Quality First Article on DC Second Article on DC Video on YouTube Total Bonus Nominal 4 3 2 4 2 3 2 1 2 1 3 27 Medical Datasets 3 2 2 3 2 1 2 1 3 19 Dataset OEX reviews 2 2 3 1 2 10 Dataset Lightweight M:N 2 2 3 1 2 10 openflights_dataset 3 2 2 1 2 1 11 iris-kaggle-socrata-generator 2 2 3 1 2 1 3 14 dataset-covid19-fake-news 3 2 2 - 1 8 Health Dataset 4 2 2 3 1 2 1 3 18 exchange-rate-cbrf 4 3 2 2 3 2 1 2 1 20 iris-python-faker 2 2 3 2 1 2 12 ApacheLog-Dataset 4 3 2 2 3 2 1 2 1 3 23 dataset-finance 4 3 2 2 3 2 1 2 1 3 23 Please apply with your comments here in the posts or in Discord. I claim youtube bonus (the video is linked with app already) for the app Health Dataset Hi Mr. EvgenyThanks for sharing the Bonuses Results.Please note that online demo is available now for Medical Datasets application. Regards I claim bonus second article: https://community.intersystems.com/post/predict-maternal-health-risks and bonus to app repo: https://openexchange.intersystems.com/package/Predict-Maternal-Risk I claim online demo bonus, my online app is hosted into http://ymservices.tech:52773/csp/sys/UtilHome.csp But this is Management Portal, right? Where is the demo? Hi Community! We decided to change the results for the Online Demo bonus category.The main reason is that the online server with the dataset hosted on it is not a sufficient demonstration. Please re-read the bonuses descriptions post to find out about the additions to the Usage Demo and Online Demo categories. And read contest chat in Discord. I set up an online [demo.]( https://cbrf.demo.community.intersystems.com/apptoolsrest/a/rate&class=a...) And mentioned it in the [readme.](https://github.com/SergeyMi37/exchange-rate-cbrf) First Article on DC [published](https://community.intersystems.com/post/database-exchange-rates-central-bank-russian-federation) Hi!. EvgenyI posted Second Article on DC:https://community.intersystems.com/post/exchange-rate-cbrf-ui-project-demonstration-application-exchange-rate-database-contest Hi!. Evgeny I Added example LOAD DATA And mentioned it in the readme.
Announcement
Anastasia Dyubaylo · Jan 26, 2022

French Stream On InterSystems Technologies #8

Hey Community, We invite you to join the next French stream on InterSystems Technologies #8, hosted by @Guillaume.Rongier7183! Date & Time: February 3rd, 12:00 Paris time. 👉 Direct link to join: https://youtu.be/2PFgnuF8bO8 On the agenda this month: 🗞 News What's new in InterSystems IRIS 2021.2 https://community.intersystems.com/post/email-templating-csp https://community.intersystems.com/post/intersystems-iris-and-iris-health-20212-published https://community.intersystems.com/post/intersystems-iris-20212-python-examples-embedded-native-apis-and-notebooks https://community.intersystems.com/post/intersystems-evaluation-service https://wrc.intersystems.com/wrc/coDistEvaluation.csp 💡 Did you know? How to create a SQL connector without code? https://docs.intersystems.com/irisforhealth20212/csp/docbook/DocBook.UI.Page.cls?KEY=HXIHRN_new#HXIHRN_new_sqladapters 🗂 Focus on A new demo on python but on the interoperability framework side Interoperability Embedded Python 👨‍💻 Let’s talk with @Benjamin.DeBoe, Product Manager, SQL et Analytics. New SQL Loader command & features in the analysis of relational tables. https://docs.intersystems.com/irisforhealth20212/csp/docbook/DocBook.UI.Page.cls?KEY=RSQL_loaddata https://community.intersystems.com/post/20212-sql-feature-spotlight-run-time-plan-choice https://community.intersystems.com/post/20212-sql-feature-spotlight-smart-sampling-automation-table-statistics https://community.intersystems.com/post/20212-sql-feature-spotlight-advanced-table-statistics Don’t miss the French stream #8 👉 https://youtu.be/2PFgnuF8bO8 Enjoy watching the prev streams on YouTube: Stream #1 Stream #2 Stream #3 Stream #4 Stream #5 Stream #6 Stream #7 Stay tuned!