Article Pierre LaFay · Nov 11, 2024 3m read

Si vous aimez Java et que vous avez un écosystème Java florissant au travail dans lequel vous devez incorporer IRIS, ce n'est pas un problème. La passerelle Java External Language Gateway le fera de manière transparente, ou presque. Cette passerelle sert de pont entre Java et Object Script dans IRIS. Vous pouvez créer des objets de classes Java dans IRIS et appeler leurs méthodes. Pour ce faire, il vous suffit de disposer d'un fichier jar.

Connection diagram: proxy object <-> Gateway object <-> TCP/IP <-> External server <-> target object

1
0 71
Article Pierre LaFay · Nov 11, 2024 3m read

IAM - InterSystems API Manager est un excellent outil pour surveiller votre trafic. Si vous essayez de l'utiliser dans votre cluster Kubernetes, vous avez peut-être essayé de faire un déploiement similaire à celui-ci :

apiVersion: intersystems.com/v1alpha1
kind: IrisCluster
metadata:
  name: iris
spec:
  licenseKeySecret:
    name: iris-key-secret
  configSource:
    name: iris-cpf
  imagePullSecrets:
    - name: intersystems-pull-secret
  topology:
    data:
      image: containers.intersystems.com/intersystems/iris-arm64:2024.1
      compatibilityVersion: "2024.1.2"
      mir

0
0 59
Article Pierre LaFay · Juil 15, 2024 2m read

Vue d'ensemble

Après quelques discussions au Global Summit et l'utilisation d'un grand nombre de gestionnaires de paquets dans mon développement quotidien (npm, nuget, Chocolatey, etc) en plus de l'utilisation récente de l'InterSystems Package Manager pour un processus CICD que je suis en train de construire en utilisant Intersystems IRIS et IRIS 4 Health, je voulais un moyen facile et intégré pour rechercher/visualiser/installer des paquets liés à la pile technologique d'Intersystems.

J'ai récemment construit une extension VSCode pour les dépôts IPM que je vais mettre en open source et publ

0
0 74
Article Pierre LaFay · Juin 26, 2024 2m read

Si l'un de vos package sur OEX fait l'objet d'une évaluation, vous n'êtes informé par OEX que de VOTRE propre package.   
L'évaluation reflète l'expérience de l'évaluateur avec le statut trouvé au moment de l'évaluation.   
Il s'agit en quelque sorte d'un instantané qui peut avoir changé entre-temps.   
Les évaluations par d'autres membres de la communauté sont marquées d'un * dans la dernière colonne.

J'ai également placé un certain nombre de Pull Requests sur GitHub lorsque j'ai trouvé un problème que je pouvais résoudre.    
Certaines ont été acceptées et fusionnées, d'autres ont été ignorées.     
Donc si vous avez fait un changement majeur et que vous attendez une révision modifiée, faites-le moi savoir.

0
0 32
Article Pierre LaFay · Juin 26, 2024 3m read

  

Bonjour à la communauté,

Dans cette série d'articles, nous allons explorer les options d'utilisation d'InterSystems SQL suivantes :

  1. Embedded SQL

  2. Dynamic SQL

  3. Class Queries

Vue d'ensemble de SQL

InterSystems SQL fournit un ensemble complet de fonctionnalités relationnelles standard, y compris la possibilité de définir un schéma de table, d'exécuter des requêtes et de définir et d'exécuter des procédures stockées. Vous pouvez exécuter InterSystems SQL de manière interactive à partir du portail de gestion ou de manière programmatique à l'aide d'une interface shell SQL. Embedded





0
0 62
Article Pierre LaFay · Juin 26, 2024 2m read

InterSystems FAQ rubric

Le type TIMESTAMP correspond au type de données %Library.TimeStamp (=%TimeStamp) dans les produits InterSystems, et le format est YYYY-MM-DD HH:MM:SS.nnnnnnnnn.

Si vous souhaitez modifier la précision après la virgule, définissez-la à l'aide de la méthode suivante.

1) Définir la précision à l'échelle du système

Portail de gestion : [Administration du système] > [Configuration] > [Paramètres SQL et objets] > [Paramètres SQL généraux] 
Précision de l'heure par défaut pour GETDATE(), CURRENT_TIME, CURRENT_TIMESTAMP. Vous pouvez spécifier le nombre de chiffres entre 0 et

0
0 53
Article Pierre LaFay · Juin 26, 2024 2m read

Si l'un de vos paquet sur OEX fait l'objet d'une évaluation, vous n'êtes informé par OEX que de VOTRE propre paquet.   
L'évaluation reflète l'expérience de l'évaluateur avec le statut trouvé au moment de l'évaluation.   
Il s'agit en quelque sorte d'un instantané qui peut avoir changé entre-temps.   
Les évaluations par d'autres membres de la communauté sont marquées d'un * dans la dernière colonne.

J'ai également placé un certain nombre de Pull Requests sur GitHub lorsque j'ai trouvé un problème que je pouvais résoudre.    
Certaines ont été acceptées et fusionnées, d'autres ont été ignorées.     
Donc si vous avez fait un changement majeur et que vous attendez une révision modifiée, faites-le moi savoir.

0
0 26
Article Pierre LaFay · Juin 26, 2024 1m read

Ajouter un identifiant pour se connecter à l'interface FHIR REST - dans ce cas, ne considérer qu'une authentification de base

 

Ajouter un registre de service - dans ce cas, ne considérer qu'une authentification de base

- configurer un service HTTP

- saisir le chemin d'accès au serveur FHIR

- saisir l'URL du service FHIR

- utiliser l'identifiant profilé


 

 

Ajouter un "HS.FHIRServer.Interop.HTTPOperation"

Choisissez le nom du service

Tester le client FHIR

Tracer le résultat du test

0
0 77
Article Pierre LaFay · Juin 26, 2024 1m read

InterSystems FAQ rubric

Pour désactiver le délai d'attente, réglez le délai d'attente de la requête sur désactivé dans les paramètres DSN :

Panneau de configuration de Windows > Outils d'administration > Sources de données (ODBC) > Configuration DSN du système

Si vous cochez la case Désactiver le délai d'attente des requêtes, le délai d'attente sera désactivé.

Si vous souhaitez le modifier du côté de l'application, vous pouvez le définir au niveau de l'API ODBC.

Définissez l'attribut SQL_ATTR_QUERY_TIMEOUT lorsque vous appelez la fonction ODBC SQLSetStmtAttr avant de vous connecter à la s

0
0 76
Article Pierre LaFay · Juin 26, 2024 2m read

Si vous voulez obtenir le premier et le dernier jour d'un mois, j'ai une ClassMethod à vous proposer (version 2, correction d'une erreur trouvée par Eduard) :

ClassMethod GetMonthPeriods(InitialYear As%Integer, EndYear As%Integer) As%Status
{
    set sc = $$$OKset result = []
    For CurrentYear = InitialYear:1:EndYear {
        For CurrentMonth = 1:1:12 {
            set item = {}
            If CurrentMonth < 10 {
                Set CurrentMonthStr = "0"_CurrentMonth
            } Else {
                Set CurrentMonthStr = ""_CurrentMonth
            }
            Set
0
0 41
Article Pierre LaFay · Juin 26, 2024 3m read

Contexte

Dans les versions >=2021.2 d'InterSystems IRIS, nous pouvons utiliser le [binaire irispython pour écrire directement du code python au-dessus de nos instances IRIS] (https://docs.intersystems.com/iris20212/csp/docbook/DocBook.UI.Page.cls?KEY=AEPYTHON#AEPYTHON_runpython_script). Cela nous permet d'utiliser des paquets python, d'appeler des méthodes, de faire des requêtes SQL et de faire à peu près tout ce qui se fait en Objectscript mais en python.

Par exemple, ci-dessous, je vérifie si un espace de noms est présent :

#!/usr/irissys/bin/irispython
import iris
# call arbitrary class met

image

0
0 58
Article Pierre LaFay · Juin 26, 2024 1m read

Récemment, j'ai voulu obtenir une liste de toutes les requêtes mises en cache et de leurs textes. Voici comment procéder.

Créez d'abord une procédure SQL renvoyant le texte de la requête mise en cache à partir d'un nom de routine de requête mise en cache :

Class test.CQ
{

/// SELECT test.CQ_GetText()
ClassMethod GetText(routine As %String) As %String [ CodeMode = expression, SqlProc ]
{
##class(%SQLCatalog).GetCachedQueryInfo(routine)
}

}

Ensuite, vous pouvez exécuter cette requête :

SELECT Routine, test.CQ_GetText(Routine)
FROM %SQL_Manager.CachedQueryTree()

Et obtenir une li

0
0 54
Article Pierre LaFay · Juin 26, 2024 2m read

InterSystems FAQ rubric

La procédure de téléchargement à partir d'un serveur FTP est la suivante.

1. Télécharger le fichier image sur le serveur FTP

 set tmpfile="c:\temp\test.jpg"
 set ftp=##class(%Net.FtpSession).%New() 
 // connect to FTP server
 do ftp.Connect("","<username>","<password>")
 // set transfer mode to BINARY
 do ftp.Binary()
 // Move to the directory to upload
 do ftp.SetDirectory("/temp/upload")
 // Prepare a stream of files to upload  
 set file=##class(%File).%New(tmpfile)
 do file.Open("UK\BIN\")
 // upload file
 // 1st argument: File name to create at upload destination
 // 2nd arg


0
0 79
Article Pierre LaFay · Juin 24, 2024 5m read

InterSystems FAQ rubric

Les données des produits InterSystems (données de ligne de table, données d'instance d'objet) sont stockées dans des variables globales.
La taille des données de chaque variable globale peut être obtenue en cliquant sur les propriétés de la variable globale que vous souhaitez visualiser sur la page Portail de gestion > Système > Configuration > Base de données locale > Globales, puis en cliquant sur le bouton Calculer la taille sur la page Attributs globaux qui s'affiche.
Pour afficher la taille des données des globaux dans un espace de noms, vous pouvez appeler l'utilit

0
0 65
Article Pierre LaFay · Juin 12, 2024 1m read

InterSystems FAQ rubric

Si vous souhaitez exécuter un fichier exécutable du système d'exploitation, une commande ou un programme créé dans un produit InterSystems au démarrage de ce dernier, écrivez le traitement dans la routine SYSTEM^%ZSTART. (La routine %ZSTART est créée dans l'espace de noms %SYS).

Avant d'écrire du code dans la routine SYSTEM^%ZSTART, assurez-vous qu'il fonctionne correctement dans toutes les conditions.

Si la routine ^%ZSTART est mal écrite, ou si elle est écrite correctement mais que la commande ne renvoie pas de réponse ou qu'une erreur se produit pendant le traitem

0
0 51
Article Pierre LaFay · Avr 27, 2024 2m read

Utilisation géographique de la recherche vectorielle

L'idée de base est d'utiliser des vecteurs au sens mathématique.
J'ai utilisé des coordonnées géographiques. Celles-ci ne sont bien sûr que bidimensionnelles
mais elles sont beaucoup plus faciles à suivre en tant que vecteurs dans le cadre d'une analyse de texte à plus de 200 dimensions.

L'exemple charge une liste de capitales mondiales avec leurs coordonnées
Les coordonnées sont interprétées comme des vecteurs à partir du point géographique 0°N/0 W
(un point très humide dans le golfe de Guinée, à plus de 400 km de la côte africaine).
Trouver d

1
0 62
Article Pierre LaFay · Avr 27, 2024 3m read

Surprises techniques à l'aide de VECTORs

La construction de mon exemple technologique m'a permis de faire un certain nombre de découvertes que je souhaite partager.
Les premiers vecteurs que j'ai touchés sont apparus avec l'analyse de texte et plus de 200 dimensions.
Je dois avouer que je me sens bien dans le monde à 4 dimensions d'Einstein.
Les 7 à 15 dimensions qui peuplent la théorie des cordes dépassent quelque peu la frontière.
Mais 200 et plus, c'est définitivement bien au-delà de mon horizon mathématique.

Ndt : Je partage avec Robert la difficulté d'abstraction pour un grand nombre de dimensions, ce qui pour moi, rend l'exemple suivant très pertinent

3
0 61
Article Pierre LaFay · Avr 21, 2024 1m read

Bonjour à tous,
En rendant un processus métier réutilisable, j'ai eu besoin de rendre la cible d'un <call> configurable en tant que paramètre de l'hôte métier. Cela peut se faire par indirection. Voici comment procéder :

Property TargetConfigName As Ens.DataType.ConfigName;Parameter
SETTINGS = "TargetConfigName:Basic";
/// BPL Definition
XData BPL [ XMLNamespace = "http://www.intersystems.com/bpl]
{
<process language='objectscript' request='Ens.Request' response='Ens.Response' height='2000' width='2000' >
<sequence xend='200' yend='450' >
<call name='Call configurable target' target='@process.Targ
0
0 69
Article Pierre LaFay · Avr 20, 2024 1m read

Bonjour,
Je me débattais avec une procédure qui devait recevoir une chaîne de caractères et l'utiliser comme filtre, j'ai découvert que puisque je voulais que la procédure fasse une transformation de données et retourne un ensemble de données, j'avais besoin d'utiliser le langage objectScript.
J'ai créé la procédure en utilisant l'interface graphique SQL dans le portail, et tout fonctionne correctement lorsque j'appelle la procédure à partir de l'interface graphique SQL, mais pas à travers une connexion JDBC - voici l'appel "call spPatientOS('2024-04-07T12:35:32Z')".
Le résultat est que la procéd

0
0 62
Article Pierre LaFay · Avr 19, 2024 1m read

InterSystems FAQ rubric

Lorsque vous exécutez une routine dans le terminal et qu'une erreur se produit dans le programme, si vous n'avez pas défini correctement le piège à erreurs, le programme entrera en mode de débogage comme indiqué ci-dessous.

USER>do^error1
 write A
^
a+2^error1 *A
USER 2d0>

A partir de cet état, entrez la commandeQuit pour revenir à l'état précédant le démarrage de la routine.

USER 2d0>Quit

Si une transaction est en cours de traitement dans la routine où l'erreur s'est produite, une invite similaire à celle ci-dessous s'affiche.

USER>do^error1
 write A
^
a
0
0 51
Article Pierre LaFay · Avr 10, 2024 2m read

Si l'un de vos package sur OEX fait l'objet d'une évaluation, OEX ne vous informe que de VOTRE propre package.   
L'évaluation reflète l'expérience de l'évaluateur avec le statut trouvé au moment de l'évaluation.   
Il s'agit en quelque sorte d'un instantané qui peut avoir changé entre-temps.   
Les évaluations par d'autres membres de la communauté sont marquées d'un * dans la dernière colonne.
J'ai également placé un certain nombre de Pull Requests sur GitHub lorsque j'ai trouvé un problème que je pouvais résoudre.    
Certaines ont été acceptées et fusionnées, d'autres ont été ignorées.     
Donc si vous avez fait un changement majeur et que vous attendez une révision modifiée, faites-le moi savoir.

0
0 51
Article Pierre LaFay · Avr 10, 2024 1m read

Bonjour, j'espère que ce billet vous aidera.

En résumé : MAXLEN est surtout pertinent pour les connexions odbc/jdbc et vous devez spécifier une valeur appropriée dans vos tables (classes), sinon les données risquent d'être tronquées lorsque vous les interrogez, ou même d'échouer lorsque vous essayez d'insérer des données.
Longue histoire :
L'interface graphique SQL du portail est très indulgente en ce qui concerne le MAXLEN, par exemple vous pouvez insérer des données dans une table où il y a des données plus longues que la taille d'une colonne, si vous utilisez fhir sql les colonnes dans les t

1
0 69
Article Pierre LaFay · Avr 9, 2024 8m read

Dans le monde des affaires, chaque seconde compte, et il est essentiel de disposer d'applications performantes pour rationaliser nos processus commerciaux. Nous comprenons l'importance de concevoir des algorithmes efficaces, mesurables par la notation big O.
Néanmoins, il existe de nombreuses stratégies pour augmenter la performance des systèmes construits sur la plate-forme de données IRIS. Ces stratégies sont tout aussi cruciales pour optimiser l'efficacité globale.
Rejoignons le voyage pour un aperçu des astuces permettant d'améliorer le fonctionnement d'IRIS Data Platform, où chaque petite a



0
0 65
Article Pierre LaFay · Avr 9, 2024 4m read

Introduction

Il existe une option d'assistant de procédure de liaison dans le portail de gestion (Système > SQL > Assistants > Procédure de liaison) avec laquelle j'ai eu des problèmes de fiabilité, j'ai donc décidé d'utiliser cette solution à la place.

Problème

Vous devez interroger une base de données SQL externe pour utiliser la réponse dans un espace de noms. Ce guide suppose que vous disposez déjà d'une procédure stockée fonctionnelle dans SSMS, bien que vous puissiez utiliser un bloc SQL dans l'opération. Les procédures stockées dans SSMS sont préférables pour maintenir l'intégrité, E


0
0 85
Article Pierre LaFay · Avr 9, 2024 2m read

Mise à jour le 19 janvier 2023.

Bonjour à tous,

Je souhaite partager une petite méthode rapide que vous pouvez utiliser pour activer ssl avec un certificat auto-signé sur votre instance locale de développement d'IRIS/HealthShare. Cela vous permet de tester des fonctionnalités spécifiques à https telles que OAuth sans avoir à vous soucier d'un grand nombre de choses.

1. Installer OpenSSL

Windows     : Download from https://www.openssl.org or other built OpenSSL Binary. 

Debian Linux: $ sudo apt-get -y install openssl

RHEL        : $ sudo yum install openssl

 

2. Créez une paire de c

1
0 101
Article Pierre LaFay · Avr 9, 2024 5m read

J'ai récemment eu besoin de surveiller depuis HealthConnect les enregistrements présents dans une base de données NoSQL dans le Cloud, plus précisément Cloud Firestore, déployé dans Firebase. D'un coup d'œil rapide, j'ai pu voir à quel point il serait facile de créer un adaptateur ad-hoc pour établir la connexion en tirant parti des capacités d'Embedded Python, et je me suis donc mis au travail.

Préparation de l'environnement

Pour commencer, nous avons besoin d'une instance de la base de données sur laquelle nous pouvons effectuer les tests. En accédant à la console Firebase, nous avons créé

0
0 80
Article Pierre LaFay · Mars 21, 2024 1m read

InterSystems FAQ rubric

Record maps sont utilisés pour faire correspondre efficacement des fichiers contenant des enregistrements délimités ou des enregistrements de largeur fixe aux classes de messages utilisées par la fonction d'interopérabilité, et pour faire correspondre des fichiers de classes de messages de la fonction d'interopérabilité à des fichiers texte.

Le définitions de correspondace peuvent être créés à l'aide du portail de gestion, et nous fournissons également un assistant d'enregistrement CSV qui vous permet de définir tout en lisant un fichier CSV.

Pour utiliser un record

0
0 64
Article Pierre LaFay · Mars 6, 2024 2m read
  • L'idée de ce paquet est de comparer les performances du stockage en colonne à l'intérieur d'IRIS sans l'intégrer à une plateforme étrangère qui n'est pas mon monde   
  • De plus, je ne veux pas mesurer les performances du réseau entre 2 conteneurs, mais à l'intérieur d'un environnement IRIS fermé que je contrôle entièrement.
  • Même l'utilisation de SMP ou d'une autre présentation basée sur un navigateur a une certaine influence que je veux éviter.
  • La mesure doit être aussi proche du cœur que possible. C'est pourquoi j'ai marqué NATIVE. Certaines personnes pourraient penser que c'est ABORIGINAL




1
0 77
Article Pierre LaFay · Mars 3, 2024 5m read

Comme la plupart d'entre vous le savent probablement déjà, depuis environ la fin de l'année 2022, InterSystems IRIS a inclus la fonctionnalité de stockage en colonnes dans sa base de données. Dans l'article d'aujourd'hui, nous allons la mettre à l'épreuve en la comparant au stockage en lignes habituel.

Stockage en colonnes

Quelle est la principale caractéristique de ce type de stockage ? Eh bien, si l'on consulte la documentation officielle nous verrons ce fantastique tableau qui explique les principales caractéristiques des deux types de stockage (par lignes ou par colonnes) :

(ndt : je n'

0
0 106