#ObjectScript

2 Seguidores · 234 Publicaciones

InterSystems ObjectScript es un lenguaje de programación para operar con datos mediante cualquier modelo de datos que se encuentre en InterSystems Data Platform (Objetos, relacionales, valores clave, documentos, globales) y desarrollar lógica empresarial para aplicaciones del lado del servidor en InterSystems Data Platform.

Consultar la documentación.

Pregunta Oscar Tarriño Buen o · sep 17, 2024

Buenos días,

En una integración que estamos haciendo entre dos sistemas recibos un ORU_R01 con los datos de un monitor.  Lo recibimos mediante una llamada a nuestro webservice en formato XML.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:com="http://com.gacelacare.ws">
   <soapenv:Header/>
   <soapenv:Body>
      <com:processMessage>
         <String_1><![CDATA[<ORU_R01 xmlns="urn:hl7-org:v2xml">
    <MSH>
        <MSH.1>|</MSH.1>
        <MSH.2> ^~\&amp;amp;</MSH.2>
        <MSH.3>
            <HD.1>AA</HD.1>
        </MSH.3>
        <MSH.
6
0 197
Pregunta Jose-Tomas Salvador · oct 21, 2022

Buenos días, tardes, noches,... wink

Una pequeña reflexión/pregunta para hoy... es una realidad que las nuevas versiones de IRIS for Health son cada vez más potentes en cuanto a capacidades FHIR. Permiten consumir recursos FHIR con extrema facilidad, podemos crear conexiones con end-points de servidores FHIR externos muy facilmente y hacer que IRIS actúe de passthrough o que consuma esos recursos... o, más aún, podemos definir y poner en funcionamiento un repositorio FHIR, literalmente, en menos de 5 minutos.

Sin embargo, hay una cosa que echo en falta en proyectos de tipo FHIR Façade, cuando tenemos que implementar una capa FHIR sobre un sistema que "no habla" FHIR. Se trata de la posiblidad de tener ayuda en nuestro IDE (Studio o VS Code) a la hora de codificar la lógica que crearía el o los objetos dinámicos (%DynamicObject) que representan los recursos FHIR que queremos definir...

3
0 137
Pregunta Yone Moreno · mayo 9, 2023

Buenos días,

Antes que nada agradecer el tiempo de ustedes al leer, reflexionar y sobre todo responder y aclarar las dudas.

 

Tenemos una cuestión:

¿Cuál es la forma recomendada de convertir un Objeto de Ensemble a JSON?,

en concreto, para ser más preciso:

¿cuál es la manera idónea de transformar un Mensaje Response con cualquier tipo de Property: %String, %List of String, otros objetos de Ensemble (EsquemasDatos); a un GlobalCharacterStream que represente al JSON? a retornar a Sistema Origen, desde el Servicio.

3
0 243
Pregunta Kurro Lopez · jun 23, 2025

Hola a todos,

Estamos desarrollando una aplicación de citas médicas que conecta las agendas de los médicos con un proveedor de citas.

El proveedor nos está devolviendo la cita en el siguiente formato:

Thu Jul 03 08:20:00 CEST 2025

Significa, 03 de julio de 2025 a las 08:20:00 Hora de verano de Europa central (UTC+2)

Pero necesitamos el siguiente formato:

2025-07-03 08:20:00+02:00

¿Existe alguna opción para convertir el código horario de zona (CEST) a UTC+x?

¿Cómo convertir el código horario de zona (CEST, CET, ET, EDT, etc..) en su zona horaria UTC (UTC+2, UTC+1, UTC-5, etc..)?

 

Saludos cordiales

2
0 53
Pregunta Laura Blázquez García · ago 20, 2021

Tengo una clase que parsea un XML para extraer toda la información. En este XML hay un atributo que tiene saltos de línea:

<record date="2021-08-11T14:25:21" entity="TEXTO"><OBSERVACIONES o="" n="Esto es un texto de prueba:
1. Contiene información importante
2. Es útil para el usuario
3. Sigue siendo una prueba"/></record>

Usando %XML.TextReader puedo acceder a toda la información del XML, pero esos saltos de línea se pierden. Esto es lo que obtengo:

Hay alguna forma de no perder los saltos de línea? He comprobado y los saltos de línea son los caracteres 13 y 10 ($Char(13) y $Char(10)).

2
0 912
Pregunta Peter N · jul 11, 2020

Intento ejecutar una pequeña rutina de prueba (adivinar un número aleatorio) en WebTerminal pero el resultado parece roto.
IRISterminal:

 WebTerminal:

Creo que se relaciona con el  backspace.
¿Se requiere algún ajuste especial?

 

El código:

a
 q=".......... guess [0..9]: " 
 i=1:1 if ! $c(9),"thank you",! q
 q  
b
 !,i,$c(9),q
 f  v#1 q:(v?.1n) " !no number",$c(8,8,8,8,8,8,8,8,8,8,8,8)
 " "
 r=$R(10),p=$s(v="":1,v=r:"!",v>r:"<",1:">")
 x=q,$e(x,r+1)="*",$e(x,v+1)=$s(v=r:"!",v>r:"<",1:">") 
 q:p  $c(13),$c(9),p=v=q

2
0 170
Pregunta Arturo Masero · feb 17, 2022

Hola compañeros/as, necesito de vuestra sabiduría.

En mi compañía programamos en ObjectScript y .int todo el día. Cuando entré nadie sabía apenas nada de clases y su uso era prácticamente sólo para definición de almacenamiento. Durante mi autoaprendizaje en caché descubrí que la programación orientada a objetos y el desarrollo de clases era posible en caché y comencé a codificar en .cls . Al ser algo autodidacta, puede que tenga algunas dudas básicas que se me hayan pasado en mis lecturas de documentación.

2
0 204
Pregunta Kurro Lopez · feb 7, 2024

Hola comunidad,

Si, ya sé que hay otra pregunta con el mismo problema "VS Code - debugging doesn't work", pero mi instancia de IRIS no está usando IIS.

Hace tiempo, podía depurar sin problemas, pero después de algunas actualizaciones de Visual Studio, tengo el siguiente error

Failed to start the debug session. Check that the Intersystems server's web server supports WebSockets

He activado el protocolo WebSocket en el servidor (Windows Server 2019) pero sigue sin funcionar.

La instancia de IRIS no está usando IIS, creo que está usando el Apache por defecto.

¿Necesito hacer algo en especial?

2
0 178
Pregunta Yone Moreno · feb 2, 2023

Buenos días,

Por favor necesitamos su asistencia.

Podrían indicarnos los pasos a seguir para entender el porqué en un entorno X cuando apuntamos por POSTMAN a su URL del Servicio Rest:

http://XXXX:XXXX/aplicaciones/scs/cconcertadostest/almacenarImagen
 

El Log del Servicio nos indic


Alert 2023-02-02 13:54:56.854 $System.Status.GetErrorText(sc): ERROR <EnsDICOM>DataElementNotFound: The DataElement at property reference 'TransferSyntaxUID' does not exist  167955423
Alert 2023-02-02 13:54:56.854 sc: 0 è<EnsDICOM>DataElementNotFoundTransferSyntaxUID«ESBCHUIMI›-e^zGetValueAt+15^EnsLib.
1
0 119
Pregunta Kurro Lopez · mayo 16, 2019

Hola a todos,

Tengo una clase que quiero serializar a JSon. Entonces estoy usando el objeto% ZEN.Auxiliary.jsonProvider)

 set myClass = ## class (myapp.myclass).% New () 
 
 
 
 set myClass.property1 = "value 1" 
 
 
 
 establecer myClass.property2 = "valor 2" 
 
 
 
 establecer myClass.property3 = " valor 3 "
 
 
 
 do ## class (% ZEN.Auxiliary.jsonProvider).% WriteJSONStreamFromObject (.tStream, myClass ,,, 1," ed ") 
 
 
 
 write tStream.Read () 

Por definición de myclass, todas las propiedades están serializadas, eso está bien. Pero no quiero serializar la propiedad3.

1
0 298
Pregunta Evgeny Shvarov · jun 29, 2019

¡Hola chicos!

Como saben, hay dos (al menos) formas de obtener el valor almacenado de una propiedad de una clase InterSystems IRIS si se conoce el ID de una instancia (o un registro).

1. Obtenerlo mediante la propiedad de una instancia con "Acceso a objetos":

 ClassMethod GetPropertyForID(stId As %Integer) As %String

{

set obj=..%OpenId(stId)

return obj.StringData

} +++ ++ 
 

2. Obtenerlo mediante una columna del registro con "acceso SQL":

 ClassMethod GetColumnForID(stId As %Integer) As %String

{

&sql(select StringData into :sd from Ideal.StoredData where id = :stId)

return sd

} 
 
 
1
0 206
Pregunta Lorenzo Scalese · jun 14, 2023

¡Hola!

Me gustaría encontrar programáticamente todas las clases que no están actualizadas en un namespace.

Con IRIS Studio, podemos ver el signo "+", pero no sé cómo hacerlo con un script.

Set sql = "SELECT ID, Name FROM %Dictionary.ClassDefinition WHERE NOT ID %STARTSWITH ?"
Set params($Increment(params)) = "%"
Set tResult = ##class(%SQL.Statement).%ExecDirect(, sql, params...)

If (tResult.%SQLCODE'=0)&&(tResult.%SQLCODE'=100) Set sc = $$$ERROR($$$SQLError, tResult.%SQLCODE, tResult.%Message) Quit sc

While tResult.%Next() {
    // if class not up to date ??
}

¿Alguien tiene alguna idea?

1
0 103
Pregunta Ba Moser · ago 25, 2020

Yo uso estas clases de ejemplo:
Class Sample.Address Extends (%SerialObject, %Populate)
{Property Street As %String;
Property City As %String;
Property State As %String(POPSPEC = "USState()");
Property Zip As %String;}
Class Sample.Person1 Extends (%Persistent%Populate)
{  Property Name As %String;
Property Home As Sample.Address;
Property AR As array Of Sample.Address; }

En SQL es Table Sample.Person1

No hay problema para definir INDEX on Home_State

But Table Sample.Person1_AR

Cómo definir un INDEX on AR_State ?
Index st On AR.State;

¡No compila!

1
0 159