User bio
 
EN
Specialized engineer in database management systems, I have participated in the development of applications for several software editors in the medical field or healthcare end-users, notably at the head office of the APHP.

To complete my expertise in data storage, I joined the editor Oracle, before joining InterSystems in 2001.

My skills in data processing have therefore been extended, from multi-model storage, interoperability (and more particularly on health exchange standards), to real-time analysis and artificial intelligence (AI / ML), so as to cover a broad spectrum of the data lifecycle in all industries.

 
FR
Ingénieur spécialisé en systèmes de gestion de bases de données, j'ai participé aux développements d'applications de plusieurs éditeurs du domaine médical ou d'établissements de santé, notamment au siège de l'APHP.

Pour compléter mon expertise en stockage de données, j'ai ensuite intégré l'éditeur Oracle, avant de rejoindre InterSystems France dès 2001.

Mes compétences en traitement de la donnée se sont dès lors étendues, depuis le stockage multi-modèles, l'interopérabilité (et plus particulièrement sur les standards d'échanges en santé), jusqu'à l'analyse en temps-réel et à l'intelligence artificielle (IA/ML), de manière à couvrir un large spectre du cycle de vie de la donnée.

 

Show all
Member since Dec 2, 2015
Replies:

You can also use classes instead of routines.

For instance :

Class test.a Extends %RegisteredObject
{

ClassMethod run() As %Status
{
    Set sc = $$$OK
    read !,"Enter the hour: ",hr  
    read !,"Enter the minute: ",min 
    read !,"Enter the second: ",sec     
    do ..getInternalTime(hr,min,sec)

     /// Display some other internal time values :
    for a = 0,3600,43200,45296,86399 {
        w !,"Equivalent M time: ",a," (Time:",$zt(a),")",!
    }
    Return sc
}

ClassMethod getInternalTime(hr As %Integer, min As %Integer, sec As %Integer) As %Status
{
    set sc=$$$OK
    set Mtime=$$ConvertToMTime(hr,min,sec)
    write !,"Equivalent M time: ",Mtime," (Time:",$zt(Mtime),")",!
    return sc
}

ClassMethod ConvertToMTime(h, m, s) As %Integer
{
        Return (h*3600)+(m*60)+(s)
}

}

Will give : 

USER>w ##class(test.a).run()

Enter the hour: 12
Enter the minute: 34
Enter the second: 45
Equivalent M time: 45285 (Time:12:34:45)

Equivalent M time: 0 (Time:00:00:00)

Equivalent M time: 3600 (Time:01:00:00)

Equivalent M time: 43200 (Time:12:00:00)

Equivalent M time: 45296 (Time:12:34:56)

Equivalent M time: 86399 (Time:23:59:59)
1

Hi @James Rutledge 

welcome in our world !

Using this ROUTINE below :

ROUTINE test.1
    r !,"Enter the hour: ",hr  
    r !,"Enter the minute: ",min 
    r !,"Enter the second: ",sec 
    s Mtime=$$ConvertToMTime(hr,min,sec)
    w !,"Equivalent M time: ",Mtime," (Time:",$zt(Mtime),")",!

    /// Display some other internal time values :
    for a = 0,3600,43200,45296,86399 {
        w !,"Equivalent M time: ",a," (Time:",$zt(a),")",!
    }
    q
ConvertToMTime(h,m,s)
    q (h*3600)+(m*60)+(s)

Will display the following result :

USER>d ^test.1

Enter the hour: 12
Enter the minute: 34
Enter the second: 45
Equivalent M time: 45285 (Time:12:34:45)

Equivalent M time: 0 (Time:00:00:00)

Equivalent M time: 3600 (Time:01:00:00)

Equivalent M time: 43200 (Time:12:00:00)

Equivalent M time: 45296 (Time:12:34:56)

Equivalent M time: 86399 (Time:23:59:59)
Open Exchange applications:
Certifications & Credly badges:
Global Masters badges:
Followers:
Following: