文章
· 八月 16, 2022 阅读大约需 2 分钟
第三章 使用管理门户(三)

第三章 使用管理门户(三)

浏览管理门户

管理门户有两种不同的视图模式可供选择以进行页面导航。可以通过单击管理门户功能区中所需的查看按钮随时在查看模式之间切换。视图模式有:

  • 分栏视图 Columns view ——分栏显示页面;这是默认模式。此查看模式允许选择收藏夹并分配自定义资源。
  • 列表视图 List view — 在下拉列表中显示页面名称。

注意:除了使用视图导航管理门户外,还可以通过位于功能区中的搜索工具直接进入页面;有关详细信息,请参阅本章中的管理门户功能区部分。

Columns view

“列视图”显示用于到达目标页面的子菜单。如果单击最终子菜单中的标题/名称,则会显示目标页面;如果在框内单击而不是在标题/名称本身上单击,则操作窗格将显示在右侧。

操作窗格

操作窗格解释了一个菜单选项,并允许执行与其相关的多项操作。要在“列”视图中显示操作窗格,请在最终子菜单中的选项周围的框内单击,而不是在选项本身上单击。可以在操作窗格中执行以下操作:

0 0
0 170
文章
· 二月 18, 2022 阅读大约需 6 分钟
SQL语句与数据模式(Select Mode)

在InterSystems IRIS和InterSystems Caché 里,是否您遇到过执行一个SQL Insert/Update语句,明明给的是正确的日期值,但被告知“值‘2022-01-01’ 校验失败”的类似情况,并感到困惑?

如果有,那么您需要了解一下InterSystems IRIS和InterSystems Caché保存和显示数据的模式。



一 数据模式

InterSystems IRIS和InterSystems Caché里,数据有3种模式,称之为SELECT MODE:
逻辑模式:这是数据被保存到InterSystems IRIS和InterSystems Cache'时的格式。例如,%Date类型的数据,在数据库里被保存为一个整数,即从1840年12月31号到这个日期的天数,而不是YYYY-MM-DD的格式。

ODBC模式:这是ODBC对数据定义的格式。在这个模式下,%Date类型的数据就会显示为YYYY-MM-DD的格式。

0 0
0 169

在医院信息化领域,中日联谊医院最近一次站在行业瞩目的聚光灯下,是在2021年7月。在国家卫生健康委统计信息中心发布的《关于2020年度国家医疗健康信息互联互通标准化成熟度测评结果公示的通知》中,9家医院获评五级乙等,中日联谊医院名列其中。这也是目前为数不多的“通关”互联互通五乙的医院之一。

1 0
0 166
文章
· 三月 26, 2021 阅读大约需 6 分钟
第十三章 使用动态SQL(四)

第十三章 使用动态SQL(四)

返回完整结果集

使用%Execute()%ExecDirect()执行语句将返回一个实现%SQL.StatementResult接口的对象。该对象可以是单一值,结果集或从CALL语句返回的上下文对象。

%Display()方法

可以通过调用%SQL.StatementResult类的%Display()实例方法来显示整个结果集(结果对象的内容),如以下示例所示:

  DO rset.%Display()

请注意,%Display()方法不会返回%Status值。

显示查询结果集时,%Display()通过显示行数来结束:“受影响的5行”。 (这是%Display()遍历结果集之后的%ROWCOUNT值。)请注意,%Display()不会在此行计数语句之后发出行返回。

0 0
0 165
文章
· 八月 17, 2022 阅读大约需 5 分钟
第四章 使用管理门户(四)

第四章 使用管理门户(四)

管理门户页面参考

管理门户由多个页面组成,分为以下功能区域:

  • 主页Home — 管理门户主页
  • 健康Health — 医疗保健页面。仅适用于 IRIS for Health™HealthShare® Health Connect
  • 分析AnalyticsIRIS® 商业智能页面
  • 互操作性Interoperability — 产品页面
  • 系统操作 — 系统操作页面
  • 系统资源管理器 — 数据库管理页面
  • 系统管理 — 系统管理页面

Home

主页包含许多用于导航管理门户的选项。

0 0
0 165
文章
· 九月 25, 2022 阅读大约需 25 分钟
Ens.Util.JSON类的启发

日常工作中,JSON使用越来越多,很多其他的语言里面有成熟的JSON API,但cache 我一直没找到。而同事们使用的基本都是自己写的一些JSON工具。这些小工具,多多少少有些局限。使用ensemble2016后,发现了 Ens.Util.JSON类,他可以处理JSON。翻阅代码后,实际上主要API是 %ZEN.Auxiliary.abstractController。在使用中,我们遇到一个问题,那就是有些JSON的节点名是带有下划线的,这个不太好处理。一般来说,我们把对象转为xml的时候,对象的属性我们是去掉下划线的,带下划线的名字是用 XMLNAME来设置的,于是考虑JSON里面也使用它(如果配置了)作为对象转JSON的时候,JSON的名字。

12 4
0 164
文章
· 四月 4, 2021 阅读大约需 3 分钟
第十六章 导入SQL Code

第十六章 导入SQL Code

本章介绍如何将SQL代码从文本文件导入Intersystems SQL。导入SQL代码时,IntersystemsIris®数据平台使用动态SQL准备并执行每行SQL。如果遇到无法解析的代码行,则SQL导入跳过该行代码并继续准备和执行后续行,直到它到达文件的末尾。所有SQL代码导入操作导入到当前名称空间。

SQL导入主要用于导入数据定义语言(DDL)命令(例如Create Table),并使用InsertUpdateDelete命令填充表。 SQL导入确实准备并执行SELECT查询,但不创建结果集。

0 0
0 160
文章
· 六月 30, 2021 阅读大约需 7 分钟
第二十三章 执行XSLT转换

第二十三章 执行XSLT转换概述

XSLT(Extensible StyleSheet Language Transformations,可扩展样式表语言转换)是一种基于XML的语言,用于描述如何将给定的XML文档转换为另一个XML或其他“人类可读”的文档。可以使用%XML.XSLT%XML.XSLT2包中的类来执行XSLT 1.02.0转换。

注意:使用的任何XML文档的XML声明都应该指明该文档的字符编码,并且文档应该按照声明的方式进行编码。如果未声明字符编码, IRIS将使用本书前面的“输入和输出的字符编码”中描述的默认值。如果这些默认值不正确,请修改XML声明,使其指定实际使用的字符集。

0 0
0 160
文章
· 四月 13, 2021 阅读大约需 14 分钟
第二章 定义和构建索引(一)

第二章 定义和构建索引(一)

概述

索引是由持久类维护的结构,InterSystems IRIS®数据平台可以使用它来优化查询和其他操作。

可以在表中的字段值或类中的相应属性上定义索引。(还可以在多个字段/属性的组合值上定义索引。)。无论是使用SQL字段和表语法还是类属性语法定义相同的索引,都会创建相同的索引。当定义了某些类型的字段(属性)时,InterSystems IRIS会自动定义索引。可以在存储数据或可以可靠派生数据的任何字段上定义附加索引。InterSystems IRIS提供了几种类型的索引。可以为同一字段(属性)定义多个索引,为不同的目的提供不同类型的索引。

无论是使用SQL字段和表语法,还是使用类属性语法,只要对数据库执行数据插入、更新或删除操作,InterSystems IRIS就会填充和维护索引(默认情况下)。可以覆盖此默认值(通过使用%NOINDEX关键字)来快速更改数据,然后作为单独的操作生成或重新生成相应的索引。可以在用数据填充表之前定义索引。还可以为已经填充了数据的表定义索引,然后作为单独的操作填充(构建)索引。

0 0
0 159
文章
· 六月 5, 2021 阅读大约需 5 分钟
第七章 Caché JSON %JSON快速参考

第七章 Caché JSON %JSON快速参考

%JSON快速参考

本节提供本章中讨论的%JSON方法、属性和参数的快速参考。

%JSON.Adaptor方法

这些方法提供了从JSON序列化和序列化到JSON的能力。

%JSONExport()

%JSON.Adaptor.%JSONExport()将启用JSON的类序列化为JSON文档,并将其写入当前设备。

0 0
0 158
文章
· 四月 13, 2022 阅读大约需 7 分钟
用Globals 作为图数据库来存储和抽取图结构数据

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 158
文章
· 八月 10, 2022 阅读大约需 4 分钟
第二十三章 源代码文件 REST API 参考(五)

第二十三章 源代码文件 REST API 参考(五)

DeleteDoc

此方法删除指定命名空间中的命名源代码文件。它返回相应的源代码文件对象。

与源代码文件有关的错误将在源代码文件对象的状态属性中。

有关示例和其他详细信息,请参阅本手册教程章节中的删除文件。

URL

DELETE http://server:port/api/atelier/v1/namespace/doc/doc-name

注意:如果要删除 CSP 文件 ,则 doc-name 的值包括 /(斜杠)字符。这就是定义 DeleteDocURLMap 包含此参数名称的 (.*) 而不是 :docname 的原因。有关详细信息,请参阅创建 REST 服务中的“为 REST 创建 URL 映射”。

0 0
0 157
文章
· 五月 15, 2022 阅读大约需 7 分钟
第143章 SQL函数 TO_DATE(一)

第143章 SQL函数 TO_DATE(一)

将格式化字符串转换为日期的日期函数。

大纲

TO_DATE(date_string[,format])

TODATE(date_string[,format])

参数

  • date_string - 要转换为日期的字符串。基础数据类型为 CHARVARCHAR2 的字符串日期表达式。
  • format - 可选 — 对应于 date_string 的日期格式字符串。如果省略格式,DD MON YYYY& 是默认值;此默认值是可配置的。

描述

名称 TO_DATETODATE 是可互换的,并且支持 Oracle 兼容性。

0 0
0 156
文章
· 七月 29, 2021 阅读大约需 4 分钟
类关键字SqlTableName,StorageStrategy,System,ViewQuery

[toc]

第三十七章 类关键字 - SqlTableName

指定此类投影到的SQL表的名称。仅适用于持久类。

用法

要覆盖此类所投影到的SQL表的默认名称,请使用以下语法:

Class MyApp.Person Extends %Persistent [ SqlTableName = DBTable ]  { //class members }

其中DBTable是有效的SQL标识符。

详解

此关键字指定此类被投影到的SQL表的名称。默认情况下,SQL表名与类名相同。

通常,当类名是SQL保留字(并不少见)或希望SQL表包含类名不支持的字符(如“_”字符)时,可以使用此关键字。

对子类的影响

此关键字不是继承的。

默认

如果省略此关键字,类名将用作SQL表名。

[toc]

0 0
0 156
文章
· 四月 9, 2021 阅读大约需 4 分钟
第二十一章 导入和导出SQL数据

第二十一章 导入和导出SQL数据

在InterSystems IRIS®Data Platform Management Portal中,有用于导入和导出数据的工具:
- 从文本文件导入数据
- 将数据导出到文本文件

这些工具使用动态SQL,这意味着查询是在运行时准备和执行的。可以导入或导出的行的最大大小为3,641,144个字符。

还可以使用%SQL.Import.Mgr类导入数据,使用%SQL.Export.Mgr类导出数据。

从文本文件导入数据

可以将数据从文本文件导入到合适的InterSystems IRIS类中。执行此操作时,系统将在表中为该类创建并保存新行。该类必须已经存在并且必须编译。要将数据导入到此类中,请执行以下操作:
1. 从管理门户中选择系统资源管理器,然后选择SQL。使用页面顶部的切换选项选择一个命名空间;这将显示可用命名空间的列表。
2. 在页面顶部,单击向导下拉列表,然后选择数据导入。

  1. 在向导的第一页上,从指定外部文件的位置开始。对于导入文件所在的位置,请单击要使用的服务器的名称。

0 0
0 155
文章
· 三月 5, 2021 阅读大约需 9 分钟
第四章 SQL标识符

第四章 标识符

标识符

标识符是SQL实体的名称,例如表、视图、列(字段)、模式、表别名、列别名、索引、存储过程、触发器或其他SQL实体。
标识符名称在其上下文中必须是唯一的;
例如,同一模式中的两个表或同一表中的两个字段不能具有相同的名称。
但是,不同模式中的两个表或不同表中的两个字段可以具有相同的名称。
在大多数情况下,相同的标识符名称可以用于不同类型的SQL实体;
例如,一个模式、该模式中的表以及该表中的字段都可以具有相同的名称,而不会产生冲突。
但是,同一个模式中的表和视图不能具有相同的名称。

InterSystems IRIS®数据平台SQL标识符遵循一组命名约定,根据标识符的使用,这可能会受到进一步的限制。
标识符不区分大小写。

标识符可以是简单标识符,也可以是分隔符。
InterSystems SQL默认支持简单标识符和分隔标识符。

简单标识符

简单标识符有以下语法:

0 1
0 155
问题
· 九月 8, 2021
DiskPercentFull

09/08/21-08:33:52:611 (11940) 1 [SYSTEM MONITOR] DiskPercentFull(d:\cachedb\hippapp\) Warning: DiskPercentFull = 95.08 ( Warnvalue is 95).
09/08/21-08:33:52:617 (11940) 1 [SYSTEM MONITOR] DiskPercentFull(d:\cachedb\hippmsg\) Warning: DiskPercentFull = 95.08 ( Warnvalue is 95).

0 2
0 154
文章
· 八月 8, 2022 阅读大约需 3 分钟
第二十一章 源代码文件 REST API 参考(三)

第二十一章 源代码文件 REST API 参考(三)

GetDocNames

此方法返回源代码文件名列表。可选的 cattype 约束源代码文件的类型。

URL

GET http://server:port/api/atelier/v1/namespace/docnames

GET http://server:port/api/atelier/v1/namespace/docnames/cat

GET http://server:port/api/atelier/v1/namespace/docnames/cat/type

其中

0 0
0 153