年度InterSystems IRIS开发者大赛来了,我们特别兴奋能够邀请大家参加我们今年的年度大奖赛,利用InterSystems IRIS数据平台创建开源解决方案!

🏆 InterSystems2022年度编程大奖赛 🏆

时间: 2021年5月9日 - 6月5日(美东时间)

总奖金超过$22,000美金,比去年提高37%!!! 

 


  Add to calendar Apple Google Outlook
0 0
0 26

image

这篇文章是对我的  iris-globals-graphDB 应用的介绍。
在这篇文章中,我将演示如何在Python Flask Web 框架和PYVIS交互式网络可视化库的帮助下,将图形数据保存和抽取到InterSystems Globals中。

建议

 

第一步 : 通过使用Python 原生SDK建立与IRIS Globals的链接

 #create and establish connection
  if not self.iris_connection:
         self.iris_connection = irisnative.createConnection("localhost", 1972, "USER", "superuser", "SYS")
                                     
  # Create an iris object
  self.iris_native = irisnative.createIris(self.iris_connection)
  return self.iris_native

 

第二步 : 使用 iris_native.set( ) 功能把数据保存到Globals 里     

#import nodes data from csv file
isdefined = self.iris_native.isDefined("^g1nodes")
if isdefined == 0:
    with open("/opt/irisapp/misc/g1nodes.csv", newline='') as csvfile:

 reader = csv.DictReader(csvfile)
 for row in reader:
    self.iris_native.set(row["name"], "^g1nodes", row["id"])

 #import edges data from csv file
 isdefined = self.iris_native.isDefined("^g1edges")
 if isdefined == 0:
    with open("/opt/irisapp/misc/g1edges.csv", newline='') as csvfile:
 reader = csv.DictReader(csvfile)
 counter = 0                
 for row in reader:
    counter = counter + 1
    #Save data to globals
    self.iris_native.set(row["source"]+'-'+row["target"], "^g1edges", counter)  

 

第三步: 使用iris_native.get() 功能把节点和边缘数据从Globals传递给PYVIS

 #Get nodes data for basic graph    
  def get_g1nodes(self):
        iris = self.get_iris_native()
        leverl1_subscript_iter = iris.iterator("^g1nodes")
        result = []
        # Iterate over all nodes forwards
        for level1_subscript, level1_value in leverl1_subscript_iter:
            #Get data from globals
            val = iris.get("^g1nodes",level1_subscript)
            element = {"id": level1_subscript, "label": val, "shape":"circle"}
            result.append(element)            
        return result

    #Get edges data for basic graph  
    def get_g1edges(self):
        iris = self.get_iris_native()
        leverl1_subscript_iter = iris.iterator("^g1edges")
        result = []
        # Iterate over all nodes forwards
        for level1_subscript, level1_value in leverl1_subscript_iter:
            #Get data from globals
            val = iris.get("^g1edges",level1_subscript)
            element = {"from": int(val.rpartition('-')[0]), "to": int(val.rpartition('-')[2])}
            result.append(element)            
        return result

 

Step4: Use PYVIS Javascript to generate graph data

<script type="text/javascript">
    // initialize global variables.
    var edges;
    var nodes;
    var network;
    var container;
    var options, data;
  
    // This method is responsible for drawing the graph, returns the drawn network
    function drawGraph() {
        var container = document.getElementById('mynetwork');
        let node = JSON.parse('{{ nodes | tojson }}');
        let edge = JSON.parse('{{ edges | tojson }}');
     
        // parsing and collecting nodes and edges from the python
        nodes = new vis.DataSet(node);
        edges = new vis.DataSet(edge);

        // adding nodes and edges to the graph
        data = {nodes: nodes, edges: edges};

        var options = {
            "configure": {
                "enabled": true,
                "filter": [
                "physics","nodes"
            ]
            },
            "nodes": {
                "color": {
                  "border": "rgba(233,180,56,1)",
                  "background": "rgba(252,175,41,1)",
                  "highlight": {
                    "border": "rgba(38,137,233,1)",
                    "background": "rgba(40,138,255,1)"
                  },
                  "hover": {
                    "border": "rgba(42,127,233,1)",
                    "background": "rgba(42,126,255,1)"
                 }
                },

                "font": {
                  "color": "rgba(255,255,255,1)"
                }
              },
            "edges": {
                "color": {
                    "inherit": true
                },
                "smooth": {
                    "enabled": false,
                    "type": "continuous"
                }
            },
            "interaction": {
                "dragNodes": true,
                "hideEdgesOnDrag": false,
                "hideNodesOnDrag": false,
                "navigationButtons": true,
                "hover": true
            },

            "physics": {
                "barnesHut": {
                    "avoidOverlap": 0,
                    "centralGravity": 0.3,
                    "damping": 0.09,
                    "gravitationalConstant": -80000,
                    "springConstant": 0.001,
                    "springLength": 250
                },

                "enabled": true,
                "stabilization": {
                    "enabled": true,
                    "fit": true,
                    "iterations": 1000,
                    "onlyDynamicEdges": false,
                    "updateInterval": 50
                }
            }
        }
        // if this network requires displaying the configure window,
        // put it in its div
        options.configure["container"] = document.getElementById("config");
        network = new vis.Network(container, data, options);
        return network;
    }
    drawGraph();
</script>

 

第五步: 从app.py 主文件调用上面的代码

#Mian route. (index)
@app.route("/")
def index():
    #Establish connection and import data to globals
    irisglobal = IRISGLOBAL()
    irisglobal.import_g1_nodes_edges()
    irisglobal.import_g2_nodes_edges()

    #getting nodes data from globals
    nodes = irisglobal.get_g1nodes()
    #getting edges data from globals
    edges = irisglobal.get_g1edges()

    #To display graph with configuration
    pyvis = True
    return render_template('index.html', nodes = nodes,edges=edges,pyvis=pyvis)    

下面是关于此项目的 介绍视频:

0 0
0 65

亲爱的社区开发者们,大家好!

欢迎积极参与新一轮InterSystems开发者竞赛!

随着 InterSystems IRIS 2021.2 预览版 的发布和全新的 LOAD DATA 功能,我们希望将其与最新的竞赛(数据集)结合起来! 

🏆 InterSystems 数据集竞赛🏆

竞赛时间: 2021年12月27日-2022年1月16日

奖金总额: $9,450


0 0
0 28

亲爱的社区开发者们,大家好!

我们欢迎您来参加 2021年欧洲医疗编程马拉松 ,这一赛事时间为2021年11月19日-21日,免费参赛,线上赛道(On-line Track)的申请截止日期延长至11月15日。

我们将有一个InterSystems的挑战:“用FHIR创新”。InterSystems赛道的奖金设置如下:

🥇第一名: 1500 EUR
🥈第二名: 1000 EUR
🥉第三名: 500 EUR
我们为所有参加InterSystems挑战的人准备了奖品!

参考下图,了解我们的挑战细节:)你愿意参加吗?请在下面的投票中告诉我们!

 

0 0
0 29

亲爱的社区开发者们,大家好!

我们诚挚地邀请您参加与InterSystems开发者竞赛(InterSystems IRIS Analytics)竞赛优胜者交流 online meetup!

日期 & 时间: 美国东部时间2021年9月17日(周五)12:00;北京时间2021年9月18日(周六)0:00-1:00

在此次线上交流会上,您将了解到: 

  • 优胜者简介
  • 优胜者提交项目的简短demo
  • 关于项目中使用到的技术的开放探讨、问答,以及下一场开发者竞赛的安排。

0 0
0 27

亲爱的社区开发者们,大家好!

我们真诚邀请您参加 Online Meetup:InterSystems 开发者竞赛(人工智能与机器学习)!

时间: 2021年7月30日(周五) 11:00 AM (美东时间)23:00 (北京时间)

在这场在线Meetup,您将了解到:

  • 此次优胜者的个人履历;
  • 获奖Application的简短Demo;
  • 有关应用技术的开放探讨、问答,以及下次竞赛的一些计划。

0 0
0 41

嗨,开发者们, 

你准备好迎接新的挑战了吗? 我们很高兴地宣布第一届InterSystems技术文章写作比赛:

🏆 InterSystems技术文章写作大赛 🏆

从2021年7月15日至8月15日,写一篇与InterSystems技术有关的任何主题的文章!

每个人都有奖品: 在此期间,每个在DC上发表文章的人都将获得一个特别的奖品包!

大奖: Apple iPad

参加我们的新比赛,你的内容将被超过55K的月度读者看到! 详情如下。

0 0
0 101
文章
Michael Lei · 五月 13, 2021 阅读大约需 2 分钟
使用 IRIS 跟踪全球疫苗接种情况

2020 年席卷全球的新冠疫情使每个人都在关注与 COVID-19 有关的新闻和数字。

为什么不趁这个机会去创造一些简单直观的东西,来帮助关注全球的疫苗接种数量呢?

为了应对这一挑战,我使用了 Our World in Data 提供的数据,他们的使命是提供解决全球最大问题所需的研究和数据。

他们在 Github 上有一个专门的 COVID-19 数据仓库,我采用了疫苗接种数据来完善我的跟踪器。

如果你不了解他们,去调查一下吧,这值得你花上一些时间。 Github 仓库

应用程序 iris-vaccine-tracker 有三个不同页面。

  1. 主仪表板
  2. 数据表,其中包含仪表板中呈现的数据的详细信息。
  3. 热图

仪表板

主仪表板提供全球疫苗接种情况的快速概览。

第一个小组件提供以下信息:

0 0
0 93

亲爱的社区开发者们,大家好!

欢迎积极参与新一轮InterSystems开发者竞赛!

🏆 InterSystems 编程大赛:FHIR 加速器 🏆

提交在AWS上使用InterSystems的IRIS FHIR-as-a-service的应用程序,或帮助使用InterSystems IRIS FHIR加速器开发的解决方案。点击这篇文章,了解如何在AWS上申请应用InterSystems IRIS FHIR 加速器服务 (FHIRaaS) 。

    时间:2021年5月10日-6月6日

    奖金总额: $8,750 

    👉  点击登录活动页面 👈


    0 0
    0 73
    文章
    Hao Ma · 三月 26, 2021 阅读大约需 2 分钟
    使用 IntegratedML 和 Sapphire 进行机器学习

    目前,机器学习的使用过程仍然有些困难,需要消耗大量的数据科学家服务。 AutoML 技术的诞生便是为了帮助组织降低这种复杂性和对专业 ML 人员的依赖。

    AutoML 允许用户指向一个数据集,选择感兴趣的主题(特征)并设置影响主题的变量(标签)。 接着,用户告知模型名称,然后基于机器学习创建预测或数据分类模型。

    这不需要了解认知算法,因为 AutoML 会在内部执行市面上的主要算法,并指出预测或分类数据的最佳算法。

    用户现在可以从经过训练的模型中指向新数据,轻松进行预测和分类。

    新的 InterSystems IRIS Advanced Analytics 除了与非常著名的 H2O 或 DataRobot(作为附加选项)搭配使用之外,还具有 AutoML 引擎 IntegratedML。

    AutoML 运算通过 SQL 命令执行,详见:https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=GIML

    0 0
    0 51
    文章
    Hao Ma · 三月 25, 2021 阅读大约需 7 分钟
    为什么 COVID-19 对机器学习也有危险? (Part II)

    上一部分,现在要利用 IntegratedML VALIDATION MODEL 语句提供信息以监视您的 ML 模型。 您可以在此处观看实际运作。

    此处所示代码衍生自 InterSystems IntegragedML 模板IRIS 文档提供的示例,我主要是把代码混合了起来。 这是一个简单的示例,目的是为进一步讨论和未来工作提供一个起点。

    0 0
    0 38
    文章
    Hao Ma · 三月 25, 2021 阅读大约需 4 分钟
    为什么 COVID-19 对机器学习也有危险?(Part I)

    几个月前,我在 MIT Technology Review 读到一篇很有意思的文章,作者解释了新冠疫情如何给全球 IT 团队带来关乎机器学习 (ML) 系统的难题。

    这篇文章引起我对 ML 模型部署后如何处理性能问题的思考。

    我在一个 Open Exchange 技术示例应用 (iris-integratedml-monitor-example) 中模拟了一个简单的性能问题场景,并提交到 InterSystems IRIS AI Contest。 读完这篇文章后您可以去看看,如果喜欢,就请投我一票吧! :)

    0 0
    0 86

    亲爱的社区开发者们,大家好!

    我们很高兴地宣布,新一轮InterSystems开发者竞赛开启了!

    🏆 InterSystems 编程大赛:开发者工具 🏆

    请提交具有如下特性的应用程序——能够加速开发、贡献更多高质量代码、帮助用户测试、部署、支持或监控基于InterSystems IRIS的解决方案。

    间: 2021年3月29日- 4月25日

    Total prize: $8,500 

    2 3
    0 132

    亲爱的社区开发者,

    我们诚挚邀请您参加 InterSystems编程大奖赛获奖成员线上见面会!

    时间: 周五(2021年3月12日)-22:00(北京时间)

    在此次线上见面会,您可以:

    • 了解获胜者的个人履历
    • 观看获奖应用的简短demo
    • 针对此次大奖赛使用到的技术、奖金和各类疑问,您可以畅所欲言,各抒己见,为下一次竞赛做准备!

    线上见面会参与成员:

    0 2
    0 38