User bio

My name is Robert Barbiaux, and I am from Belgium.

I've been interested in science and technology since 1979. At age twelve, I first encountered computing through programmable calculators and 8-bit computers like the Radio Shack TRS-80.

I hold a degree in computer science from Brussels Free University and have worked in IT since 1990 in roles including developer, analyst, system engineer, and development team leader.

Over the years, I have gained experience with IT across multiple business and industry sectors such as steel, retail, banking, and healthcare. My background includes work in various operating environments (Unix, Windows, etc.) and programming languages (C, C++, Object Pascal, Java, etc.).

My initial experience with InterSystems technologies began with Caché in 2006 while working in the healthcare sector. Since then, I have used Ensemble and IRIS Health primarily for interoperability projects and have developed expertise in healthcare IT.

Currently, I am engaged as a freelance healthcare IT consultant at a hospital, providing services as an analyst, developer, coach, and specialist in healthcare IT.

Show all
Member since Jun 6, 2021
Posts:
Replies:

Hi Robert, thank you for sharing this nice recollections explaining the roots of IRIS. 

Wishing you a comfortable cooling on your side of the galaxy, with occasional temp spikes to keep things interesting, I can't resist sharing a little story you may find pleasant.
I came by in 2024 with a MUMPS code base containing parts dating back to between 1985 and the early 90's. At the time, it was running on a VAX with a terminal based user interface on VT-320s. This application is a quite comprehensive hospital pharmacy logistics management and integration system.
It was ported to Caché with very few modifications in the late 90s and was still running (largely) unmodified in 2023 using IRIS 2021.1 and terminal emulators running on Windows PCs. 
Solid are the roots : what an outstanding technological achievement ! 
The system has been developed by a team in the hospital over the years. As the last of them happily went on retirement in 2023, I was tasked by the hospital during 2023-2024 to perform corrective and evolutive maintenance on it. At the end of 2024, it was replaced by an entirely different of-the-shelf solution.
I found (and used ;-) a global browser routine "%K" in the database, here is a portion of the code - does it look familiar to you ?

0 S %GIOD=0,%RET="^%K" 
 s %ZV="M11" g EXE 
  
 S $ZT="ERV" 
 s %ZV=$ZV G EXE 
ERV S %ZV="M11" 
EXE S $ZT="%ER^%K" 
 S W="~" 
1 D ^%K1 G KQ:"^"[% S %("X")="G W" D GO G 1 
%ER W !,$ZE,! G 1 
 ; - 
ZN S %ZN=%N_%SS,%G=%ZN_""""")",%ZL=$L(%ZN),%DF=1 
ZN1 S %G=$ZO(@%G) 
 S:$E(%G,1,2)="^[" %G="^"_$E(%G,$F(%G,"]"),$L(%G)) 
 G POP:$E(%G,1,%ZL)'=%ZN 
 S %D=@%G 
 D:%CHK CHK 
 X %("X") Q:%Q 
 G ZN1 
 ; - 
IO S %QTY=2,%DEF=0 D ^%IOS G KQ:'$D(%IOD) S $ZT="TRAP^%K",%GIOD=%IOD K %DTY,%IOD D 1 S $ZT="" Q 
 ; - 
CHK I %D?.E1C.E F %I=0:1:31,127 I %D[$C(%I) G REMOV 
 Q 
REMOV U 0 W !,%G," = ",%D,!?5,"Control character ",%I," in position ",$F(%D,$C(%I))-1 
 S %D="Control characters in data, data not transferred" W !?5,%D Q 
GO S:'$D(TERM) TERM=0 S %Q=0 U:'TERM %GIOD F %GP=1:1 Q:'$D(%(0,%GP))  D GP Q:%Q 
 U:'TERM 0 Q 
...

Several built-in mecanisms come in support of Business Process throughput :

  • Concurrent business process execution by setting actor pool (PoolSize setting) to a value greater than 1 
  • Asynchronous call/response : process will passively wait for async response. It is reinstanciated with context (non transient properties) restored on receiving response
  • Deferred response : see Deferred Sending

See also : Business Process Key Principles
 

To debug a business host, set a breakpoint, attach the VsCode debugger to the job (assuming PoolSize is 1), and trigger the business host (e.g by sending message)

Open Exchange applications:
Certifications & Credly badges:
Robert has no Certifications & Credly badges yet.
Followers:
Following:
Robert has not followed anybody yet.