Bonjour la Communauté,
.png)
pour se former rapidement et en totale autonomie sur IRIS, je vous propose quelques liens qui pourront vous aider dans cette belle promenade riche en découvertes :
InterSystems ObjectScript est un langage de script permettant d'opérer avec des données en utilisant n'importe quel modèle de données de la plateforme de données InterSystems (objets, relationnel, clé-valeur, document, globales) et de développer une logique métier pour les applications côté serveur sur la plateforme de données InterSystems.
Bonjour la Communauté,
.png)
pour se former rapidement et en totale autonomie sur IRIS, je vous propose quelques liens qui pourront vous aider dans cette belle promenade riche en découvertes :
Salut les développeurs,
Dans cet article, je vais vous montrer comment exécuter du code au moment de la compilation avec les macros ObjectScript.
Voici un cas d'utilisation qui m'a récemment amené à utiliser cette fonctionnalité :
Dans le cadre d'une application médicale développée depuis plus de 20 ans, nous avons un grand nombre de paramètres. Bien que nous disposions de procédures pour documenter ces paramètres, il peut être utile d'avoir une vue rapide sur les paramètres réellement utilisés par le code de l'application.
Bonjour la Communauté,
J'essaie de charger des données d'un fichier CSV dans IRIS. J'utilise un RecordMap. Le CSV comporte 3 colonnes qui sont des dates et j'utilise $ZDATEH() pour convertir les colonnes de date au format interne IRIS. Mais l’année qui est chargée dans IRIS est fausse. Exemple : si dans mon csv la date est "26/05/23", après transformation des données et chargement des données, la date stockée dans l'IRIS est "26/05/1923". L'année de stockage est erronée, au lieu de 2023, l'année de stockage est 1923 Pouvez-vous s'il vous plaît me dire comment résoudre ce problème ?
Bonjour les développeurs, Je suis actuellement en train de faire une démo sur la construction d'une interface utilisateur en front-end faisant de l'analyse de données et de mettre en place un test de performance avec de gros objets de données, donc l'utilisation de "Populate Utility" pourrait m'aider à générer automatiquement des échantillons de données avec lesquels je pourrais jouer.
Dans ce post, j'aimerais partager mon expérience de l'utilisation de Populate Utility, y compris l'utilisation du paramètre POPSPEC.
Excusez si cela est évident pour les programmeurs Python, mais pour ceux qui viennent d'ObjectScript, cela peut être une astuce utile.
Lorsqu'on développe avec des commandes python.
Le test des fonctionnalités sont en cours via le shell :
$SYSTEM.Python.Shell() Python 3.9.5 (default, Mar 14 2023, 06:58:44) [MSC v.1927 64 bit (AMD64)] on win32 Type quit() or Ctrl-D to exit this shell. >>>
Lorsque Python évalue une expression dans le shell, il imprime le résultat de l'expression sur le terminal.
>>> 1 + 2 3
Il est assez facile d'évaluer et d'afficher accidentellement des valeurs
iris.cls("%Dictionary.MethodDefinition")._OpenId("%Library.String||LogicalToJSON",0)Les méthodes écrites en ObjectScript peuvent utiliser des arguments de type " passage par référence " pour renvoyer des informations à l'appelant. Python ne supporte pas les arguments de type " passage par référence ", donc Python intégré dans IRIS ne les supporte pas non plus. Voilà, c'est la fin de cet article, j'espère qu'il vous a plu 😉 Mais attendez, et le Rock & Roll Classic ?
En fait, puisque les valeurs retournées dans les arguments de méthode peuvent être utiles, cet article montre plusieurs façons de procéder, entre ObjectScript et Python intégré.
Salut à tous !
Dans cet article, j'aimerais passer en revue les extensions de VS Code que j'utilise moi-même pour travailler avec InterSystems et qui rendent mon travail beaucoup plus pratique. Je suis certain que cet article sera utile à ceux qui commencent tout juste à apprendre les technologies d'InterSystems. Cependant, j'espère également que cet article pourra être utile aux développeurs expérimentés ayant de nombreuses années d'expérience et qu'il leur ouvrira de nouvelles possibilités lors de l'utilisation de VS Code pour le développement.
En passant d'IRIS objectScript à Python, on s'aperçoit qu'il existe des différences syntaxiques fascinantes.
L'une d'entre elles concerne la manière dont Python renvoie des tuples à partir d'une méthode à décompression automatique.
En fait, il s'agit d'une méthode qui renvoie plusieurs valeurs. Quelle invention géniale :)
out1, out2 = some_function(in1, in2)
ObjectScript a une autre approche avec les paramètres ByRef et Output.
Do ##class(some_class).SomeMethod(.inAndOut1, in2, .out2)
Où:
Le point initiale (".
Je suis heureux d'annoncer la version 2.6.0 de l'extension VS Code ObjectScript, contenant un certain nombre d'améliorations qui facilitent la vie d'un développeur. Certains faits saillants sont décrits ci-dessous. Comme toujours, retrouvez la liste complète des modifications dans le CHANGELOG, y compris de nombreux correctifs de bogues et de vulnérabilités.
Merci à @Olli Tanskanen de la société partenaire JediSoft Oy pour cette amélioration !
Il s'agit d'un modèle de base pour un environnement de développement permettant de travailler avec ObjectScript dans InterSystems IRIS. Il vous aide à éditer, compiler, commettre/pousser, déboguer et tester votre code ObjectScript. Il aide également à conditionner votre application en tant que module installable avec IPM. Le modèle est compatible avec Embedded Python.
Ce référentiel fournit un environnement de développement prêt à l'emploi pour coder de manière productive avec ObjectScript d'InterSystems.
Bonjour la communauté !
Existe-t-il un moyen en objectscript de récupérer tous les noms de propriétés d'un message HL7 ?
Par exemple, j'ai un message HL7 :
MSH|^~\&|MIHIN PATIENT GEN|1.2.3.4.5.9.99.999.9999.1004||2.16.840.1.113883.3.1481|20200103000000+0000||ADT^A01^ADT_A01|1092|P|2.6|1091|||||||||Windward General Hospital EVN||20200110000000+0000|||||1.2.3.4.5.9.99.999.9999.1004 PID|1|3170|44c8a6bba5c743538e476a813256959b^^^^CKS~000003170^^^^SS||Santana^Pearl||19900609|F||2054-5^Black or African American^HL70005|364 NE Oak Circle^^Trenton^MI^48183||||||||000003170|||N^Not Hispanic or Latino^HL70189|||||||20200110000000+0000|N PD1|||Windward General Hospital^^^^^^^^^1.2.3.4.5.9.99.999.9999.1004|9999992221^Johnston^Karl^^^^^^^^^^NPI^^^^^^^^MD PV1|1|I|^^67^1.2.3.4.5.9.99.999.9999.1004||||9999992221^Johnston^Karl^^^^^^^^^^NPI||||||||||||17a5e3aa59a34ad5af017998278a5eb5||||||||||||||||||&HOME^20200110000000+0000|||||||20200103000000DG1|1||Z34.90^Normal pregnancy^I10||20200103000000+0000|F|^Become_Pregnant IN1|1|1772^STATE HEALTH PLAN|1027|MEDICAID||||||||||||Santana^Pearl^Gladys|||364 NE Oak Circle^^Trenton^MI^48183
Je voulais donner un aperçu d'une amélioration de la façon dont nous générons et appelons le code de méthode dans IRIS 2023.1.
Une classe dans IRIS est composée de deux composants d'exécution principaux :
Salut les Devs !
Pour moi, l'une des choses les plus pénibles à propos d'ObjectScript est de taper ##class(Class).Method() pour appeler une méthode de classe dans le code ou dans un terminal. J'ai même soumis une idée pour le simplifier en ObjectScript.
Mais! Il y a une nouvelle fonctionnalité dans VSCode ObjectScript qui vient d'être introduite dans le plugin - Copy Invocation !
Passez simplement le curseur sur le lien Copy Invocation au-dessus de chaque méthode de classe dans un code, cliquez dessus et l'invocation est copiée dans le buffer:

Collez-le où vous voulez qu'il s'exécute !
Cet article décrit et contient un exemple de la manière d'intégrer un fichier PDF externe dans un segment HL7, plus précisément dans ADT_A01:2.3.1 OBX(). Cela peut être utile lorsqu'on tente de mettre des images ou d'autres données externes dans un message HL7. Dans cet exemple, le nom du fichier PDF à intégrer est fourni dans le message HL7 entrant dans le champ OBX(1):ObservationValue.
Au fil des ans, je me suis souvent retrouvé dans la nécessité de créer plusieurs messages HL7 à partir d'un seul message entrant. Il s'agit généralement d'une commande ou d'un résultat provenant d'un laboratoire. Chaque fois que j'ai abordé ce problème, j'ai essayé de repartir de zéro en pensant que la tentative précédente aurait pu être mieux faite.
Récemment, le besoin est réapparu et j'ai pu créer une solution dont je n'avais pas honte.
Lors de la création d’un PRA (Privileged Routine Application ; qui d’ailleurs n’est pas pertinent uniquement pour les routines mais aussi pour les classes/méthodes), il est important de s’assurer d’inclure un new $ROLES, avant d’appeler AddRoles(). Par exemple:
New $ROLES
set status=$System. Security.AddRoles(« MyPrivilegedRoutineApplication »)
De cette façon, vous vous assurez que les rôles ajoutés (élevés) « s’évaporent » pour l’utilisateur exécutant ce code, une fois que l’utilisateur est hors du champ d’application de cette routine / méthode.
[Merci @Andreas Dieckow d’avoir validé cela]
Salut les développeurs,
Nous savons que vous l'attendiez depuis une année entière. Le moment est enfin venu !
Rejoignez Advent of Code 2022 avec InterSystems et participez à notre concours ObjectScript pour gagner des prix $$$$ !

Bonjour les développeurs!
Souvent, lorsque nous développons une bibliothèque, un outil, un package, quel qu’il soit dans InterSystems ObjectScript, nous avons une question, comment pouvons-nous déployer ce package sur la machine cible ?
De plus, nous attendons souvent d’autres bibliothèques déjà installées, donc notre paquet dépend d’elles, et souvent d’une version spécifique de celui-ci.
Lors de l’encodage javascript, python, etc., le rôle de l’implémentation de packages de gestion des dépendances nécessite un gestionnaire de paquets.
C’est pourquoi j’ai le plaisir de vous annoncer que InterSystems ObjectScript Package Manager est disponible !
Si vous êtes sur le point d'apprendre InterSystems ObjectScript, nous rendons la décision beaucoup plus facile.
Nous venons de mettre à jour le parcours d'apprentissage " Premiers pas avec InterSystems ObjectScript " avec 3 nouvelles vidéos de 5 minutes - et un exercice de synthèse pour vous aider à rassembler tout ce que vous apprendrez.
🤝 Obtenez une introduction à InterSystems ObjectScript
🤿 Plongez plus profondément dans les commandes et les fonctions
🤔 Comprendre les types de données et les variables
👨💻 Créer une définition de classe
Faites tout cela dans notre parcours d'apprentissage mis à jour, Premiers pas avec InterSystems ObjectScript.
InterSystems est fier d'offrir 50 % de réduction sur les examens de certification InterSystems à tous les participants inscrits au UK&I Summit. Des bons seront disponibles au bureau d'inscription.

Examens disponibles
Bonjour la communauté,
Ce post est une introduction de mon application de messagerie pour iris-fhir-client iris-fhir-client .

iris-fhir-client peut se connecter à n'importe quel serveur FHIR public en utilisant Python intégré avec l'aide de la bibliothèque fhirpy.
Obtenez des informations sur les ressources via le terminal et l'application web CSP.
Bonjour la communauté !
Cet article vise à donner un aperçu des webservices REST JSON développés pour TrakCare.
Ces webservices ont été développés dans le but de permettre aux utilisateurs d’accéder aux données de TrakCare depuis l’extérieur, notamment via des applications externes.

Dans la newsletter actuelle des Learning Services, découvrez comment vous pouvez vous familiariser avec les outils d'analyse des soins de santé, Embedded Python et InterSystems Package Manager. Si vous débutez avec InterSystems ObjectScript, essayez un parcours d'apprentissage pour commencer !
Utiliser des méthodes avec syntax objet et SQL est l'une des caractéristiques les plus intéressantes dans Object Script. Mais dans un cas précis, ça m'a donné des résultats inattendus, donc j'ai essayé d'isoler le cas et le décrire ici.
Disons que vous devez écrire une méthode de classe qui met à jour une seule propriété. Habituellement, j'écrirais cela en utilisant SQL comme ceci :
Cette publication est le résultat direct d'une collaboration avec un client d'InterSystems qui est venu me consulter pour le problème suivant :
SELECT COUNT(*) FROM MyCustomTable
Cela prend 0,005 secondes, pour un total de 2300 lignes. Cependant :
SELECT * FROM MyCustomTable
Prenait des minutes. La raison en est subtile et suffisamment intéressante pour que j'écrive un article à ce sujet. Cet article est long, mais si vous faites défiler la page jusqu'en bas, je vous donnerai un résumé rapide.
Class Query dans InterSystems IRIS (et Cache, Ensemble, HealthShare) est un outil utile qui sépare les requêtes SQL du code . En principe, cela fonctionne comme suit : supposons que vous souhaitiez utiliser la même requête SQL avec différents arguments à plusieurs endroits différents. Dans ce cas, vous pouvez éviter la duplication du code en déclarant le corps de la requête comme une Class Query, puis en appelant cette requête par son nom. Cette approche est également pratique pour les requêtes personnalisées, dans lesquelles la tâche consistant à obtenir la ligne suivante est définie par un développeur. Cela vous intéresse ? Alors lisez la suite !
Voici quelques exemples de conversions et d'opérations dont vous pourriez avoir besoin, ainsi que des liens vers la documentation où vous pourrez en apprendre davantage.
Au moment où j'ai écrit ces lignes, l'heure d'été était en vigueur pour mon système Caché.
Caché a un format d'heure simple, avec une plus grande gamme de dates reconnues par rapport à certaines autres technologies.
Le type DATE correspond au type de données du produit InterSystems %Date et le type TIME correspond à %Time.
%Date enregistre une date interne (premier élément séparé par une virgule de la variable spéciale $Horolog), et %Time enregistre l'heure interne (deuxième élément séparé par une virgule de la variable spéciale $Horolog). La logique côté serveur utilise donc la valeur au format (logique) interne, sauf si vous changez le mode d'affichage.
La méthode permettant de modifier le format d'affichage de la date et de l'heure internes dans la logique côté serveur dépend de la méthode d'exploitation.
Pour SQL, null et la chaîne vide ('') sont distinguées. Chaque méthode de définition/réception est la suivante.
Ce mois, j'annonce la sortie de la version 1.8.0 de l'extension VS Code qui contient les améliorations et corrections de bogues suivantes.
La grande nouveauté est la prise en charge des fichiers de projet côté serveur, comme certains d'entre vous se souviendront de Studio. Si vous travaillez côté client, VS Code possède déjà d'excellentes fonctionnalités de gestion de projet. Vous pouvez simplement utiliser un dossier en tant que projet ou utiliser des multi-root workspaces