Question Yone Moreno · Feb 23, 2021

We would need some help,

Thanks in advance for your replies,

We can POST directly via POSTMAN only if we disable "SSL certificate verification"

We see the response:

However if we turn on "SSL certificate verification" it shows:

So, when we use Ensemble and a REST Operation, it outputs:

ERROR <Ens>ErrException: <THROW>zdoLoginToken+22^Operaciones.REST.HistoriaClinica.VacunasAPI.1 *%Exception.StatusException ERROR <Ens>ErrHTTPStatus: Recibido estado no correcto 403 del servidor HTTP remoto: 'HTTP/1.1 403 Forbidden' -- - registrado como '-' número - @' Set sc=tSC Throw:('sc) ##class(%Exception.

1
0 511
Question Yone Moreno · Jan 28, 2021

Hello,

We would need some help,

Our aim is to send an image as binary data using a REST Service

Currently we do the following:

1 We get from the external system a binary image in our REST Operation

2 We encode it to Base64

set linea=""
    while (tResponse.Data.AtEnd = 0) {
        set linea = linea_$system.Encryption.Base64Encode(tResponse.Data.Read(57))
    }

3 We send it to the Process in a Response Message:

Class Mensajes.Response.miSCS.ConsultarImagen Extends Ens.Response
{

Property resultado As %Boolean;

Property informacion As %String(MAXLEN = "");

Property binario As %Stream.GlobalBinary;

// Property binario As %Stream.FileBinary;

// Property binario As %GlobalCharacterStream;

// Property binario As %Stream.TmpCharacter;

Property error As EsquemasDatos.Seguridad.Error;
4
0 1170
Question Yone Moreno · Jan 27, 2021

Hello,

We would need some help, please;

We would like to handle when we have a date with hours:

20201204090000

And when we have it without the hours part, as follows:

20201204

For the first case we used:

##class(Ens.Util.Time).ConvertDateTime(source.{ORCgrp(1).RXA:DateTimeStartofAdministratio},"%Y%m%d%H%M%S","%d/%m/%Y",,.tSC)

For the second one we wrote:

##class(Ens.Util.Time).ConvertDateTime(source.{ORCgrp(1).RXA:DateTimeStartofAdministratio},"%Y%m%d","%d/%m/%Y",,.tSC)

However each way only works for one case

How could we handle both cases with just a line of code?

We have read:

https://docs.

1
0 467
Question Yone Moreno · Jan 25, 2021

Hello,

We would be grateful if you could help us,

Our aim is to develop a method which retrieves an image stored in an external system, using a REST Operation

To upload the image we have the following code:

/// Operacion para gestionar el Registro imagen identidad digital en Tarjeta Sanitaria
Class Operaciones.REST.miSCS.miSCS Extends EnsLib.REST.Operation
{

Parameter INVOCATION = "Queue";

/// Subir la imagen del usuario
/// La documentación para crear este metodo es:
/// https://docs.intersystems.com/irisforhealthlatest/csp/docbook/Doc.View.cls?KEY=GNET_http#GNET_http_post_multipart
/// https://docs.intersystems.com/irisforhealthlatest/csp/docbook/Doc.View.cls?KEY=GNET_mime
Method SubirImagen(pRequest As Mensajes.Request.miSCS.SubirImagen, pResponse As Mensajes.Response.miSCS.SubirImagen) As %Library.Status
{
$$$LOGINFO("pRequest.imagen: "_pRequest.imagen) //Creamos Request y Response HTTP
Set httpRequest=##class(%Net.HttpRequest).%New()
set tResponse = ##class(%Net.HttpResponse).%New() // Generamos la parte que contiene a las demás partes, la "raiz", RootMIMEPart
    Set RootMIMEPart=##class(%Net.MIMEPart).%New()
    
    //Creamos la primera "subparte" con el expediente
    Set ExpedienteMIMEPart=##class(%Net.MIMEPart).%New()
    Set contentdisp="form-data; name=""expediente"""
    Do ExpedienteMIMEPart.SetHeader("Content-Disposition",contentdisp)
    Set ExpedienteMIMEPart.Body=pRequest.expediente
    //Do ExpedienteMIMEPart.SetHeader("Content-Type","text/plain") ; esto no se envia en POSTMAN
    
    //Asignamos la imagen
    //Esto si funciona (la guarda como jpg y al descargarla se ve)
    Set docStream=##class(%Stream.FileBinary).%New()
   //Set sc=docStream.LinkToFile("C:\InterSystems\avatar prueba.jpg")     // Esto no funciona (guarda el base64 directo, no el binario;
    // es decir, guarda lo mismo que enviamos desde POSTMAN)
    //set docStream = pRequest.imagen
    
    //Si ponemos pRequest.imagen como string, enviamos el base64 por postman y decodificamos aqui a binario si
    //guarda la imagen como jpg
    set binary = $system.Encryption.Base64Decode(pRequest.imagen)
    do docStream.Write(binary)
     
    // Instanciamos la segunda "subparte" con la imagen
    Set ImagenMIMEPart=##class(%Net.MIMEPart).%New()
    // Incluimos la imagen, el docStream, en la subparte MIME
    Do ImagenMIMEPart.BodySet(docStream)
    // Cabeceras
    Set ImagenMIMEPart.ContentType = "image/jpeg"
    Do ImagenMIMEPart.SetHeader("Content-Disposition","form-data; name=""imagen""; filename=""imagen.jpg""")
    
    
    // Insertamos las dos subpartes en la raiz
    Do RootMIMEPart.Parts.Insert(ExpedienteMIMEPart)
    Do RootMIMEPart.Parts.Insert(ImagenMIMEPart) // Creamos el MIME writer
    Set writer=##class(%Net.MIMEWriter).%New()     // Preparamos para enviar el mensaje MIME a la peticion HTTP
    Set httpRequest=##class(%Net.HttpRequest).%New()
    Set status=writer.OutputToStream(httpRequest.EntityBody)
    if $$$ISERR(status) {do $SYSTEM.Status.DisplayError(status) Quit}     // Escribimos el contenido del mensaje MIME en la peticion HTTP
    Set status=writer.WriteMIMEBody(RootMIMEPart)
    if $$$ISERR(status) {do $SYSTEM.Status.DisplayError(status) Quit} // Creamos la URL
set url      = ##class(Util.TablasMaestras).getValorMaestra("MISCS.PARAMETRIZACIONES","url")
set path     = ##class(Util.TablasMaestras).getValorMaestra("MISCS.PARAMETRIZACIONES","path")
set servicio = ##class(Util.TablasMaestras).getValorMaestra("MISCS.PARAMETRIZACIONES","servicio")
set recurso  = ##class(Util.TablasMaestras).getValorMaestra("MISCS.PARAMETRIZACIONES","subirImagen") set URL      = "http://"_url_path_servicio_recurso

$$$LOGINFO("URL: "_URL)
//Escribimos el tipo de contenido que enviamos en la raiz
Set httpRequest.ContentType="multipart/form-data; boundary="_RootMIMEPart.Boundary 
$$$LOGINFO("> httpRequest.ContentType: "_httpRequest.ContentType) //Enviamos al sistema externo
set tSC=httpRequest.Post(URL,0)
$$$LOGINFO("tSC: "_tSC) //Lanzamos excepcion si hubo error
if $$$ISERR(tSC){
$$$ThrowOnError(tSC)
}
//Obtenemos respuesta
set tResponse = httpRequest.HttpResponse //Leemos respuesta
if (tResponse.Data.AtEnd = 0) {
set linea = tResponse.Data.Read()
$$$LOGINFO("Linea: "_linea)
} //Rellenamos response
set pResponse = ##class(Mensajes.Response.miSCS.SubirImagen).%New()
set pResponse.resultado = 1
set pResponse.informacion = linea 
//Traducimos codigo del resultado, a descripcion
//set pResponse.informacion = ##class(Util.TablasMaestras).getValorMaestra("MISCS.CODIGOSTSI",linea) Quit pResponse
}

XData MessageMap
{
<MapItems>
  <MapItem MessageType="Mensajes.Request.miSCS.SubirImagen">
    <Method>SubirImagen</Method>
  </MapItem>
  </MapItems>
}
1
0 509
Question Yone Moreno · Jan 12, 2021

Hello,

First of all thanks for your help,

We would need to get the list of all names, ports and types from the services listed in a namespace

We have read the following documentation:

https://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls…

https://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls…

In addition, we have read the following topics:

https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?

1
0 504
Question Yone Moreno · Jan 4, 2021

Hello,

We would like some advice

We have developed a REST Operation

The code is:

Class Operaciones.REST.miSCS.miSCS Extends EnsLib.REST.Operation
{

Parameter INVOCATION = "Queue";

/// 📤 Subir la imagen del usuario
Method SubirImagen(pRequest As Mensajes.Request.miSCS.SubirImagen, pResponse As Mensajes.Response.miSCS.SubirImagen) As %Library.Status
{
    set httpRequest = ##class(%Net.HttpRequest).%New()
    set tResponse = ##class(%Net.HttpResponse).%New()
    //set httpRequest.ContentType = "application/json"
    set httpRequest.ContentType = "multipart/form-data"

    
    set url      = ##class(Util.TablasMaestras).getValorMaestra("MISCS.PARAMETRIZACIONES","url")
    set path     = ##class(Util.TablasMaestras).getValorMaestra("MISCS.PARAMETRIZACIONES","path")
    set servicio = ##class(Util.TablasMaestras).getValorMaestra("MISCS.PARAMETRIZACIONES","servicio")
    set recurso  = ##class(Util.TablasMaestras).getValorMaestra("MISCS.PARAMETRIZACIONES","subirImagen")
            
    set URL = "http://"_url_path_servicio_recurso
    $$$LOGINFO("URL: "_URL)
    
    /*
    //Probamos a leer una imagen local y a enviarla
    
    Set stream=##class(%Stream.FileCharacter).%New()
      Set sc=stream.LinkToFile("Pictures\mi.jpg")
      While 'stream.AtEnd {
          Set linea=stream.Read()
      }
      $$$LOGINFO("linea: "_linea)
      */
    
    set tFormVarNames = "expediente,imagen"
    set tData("expediente") = pRequest.expediente
    set tData("imagen") = pRequest.imagen
    //set tData("imagen") = linea

    set tSC = ..Adapter.SendFormDataArray(.tResponse,"POST",httpRequest,.tFormVarNames,.tData,URL)
    $$$LOGINFO("tSC: "_tSC)
    
    if $$$ISERR(tSC){
            $$$ThrowOnError(tSC)
    }
    if (tResponse.Data.AtEnd = 0) {
        $$$LOGINFO("En SubirImagen, tamaño de tResponse: "_tResponse.Data.Size)
        set linea = tResponse.Data.Read()
        $$$LOGINFO("Linea: "_linea)
    }
    
    set pResponse = ##class(Mensajes.Response.miSCS.SubirImagen).%New()
    do pResponse.return.Write(linea)

    Quit pResponse
}

XData MessageMap
{
<MapItems>
  <MapItem MessageType="Mensajes.Request.miSCS.SubirImagen">
    <Method>SubirImagen</Method>
  </MapItem>

</MapItems>
}
5
0 1100
Question Yone Moreno · Oct 5, 2020

Hello, we would need some help:

We would like to use a Transformation to convert an ORU_R30 2.3 to ORU_R30 2.5

However Ensemble does not have a HL7 Schema for ORU R_30 2.3

So then our original message is not being recognized:

→ How could we let Ensemble recognize the ORU R30 2.3 structure to be able to use a Transformation?

We have read:

https://cedocs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.c…

https://docs.intersystems.com/irisforhealthlatest/csp/docbook/DocBook.U…

https://cedocs.intersystems.

2
0 331
Question Yone Moreno · Oct 2, 2020

Hello,

We would need your help:

We are processing a HL7 message.

Its OBX segment has 4318 characters

1) We get the OBX with the following line of code:

set textoCompleto = request.GetValueAt("5:3.2")

When we output its length with:

$$$LOGINFO("textoCompleto: "_textoCompleto)

It shows:

     $LENGTH(textoCompleto): 3497

 - So as we see it is being shortened

2) We get the OBX with the following line of code:

When we output its length with:

1
0 440
Question Yone Moreno · Oct 2, 2020

Hello,

We would need your help.

When we test using the actual HL7 message, how could we achieve to send the response from the Process to the Service? 

Process does not send response to a EnsLib.HL7.Service.TCPService when we test it with a EnsLib.HL7.Operation.TCPOperation, why?

We are developing a Production which is composed by:

 - A service: EnsLib.HL7.Service.TCPService

 - A bussiness process

 - An Operation: EnsLib.HL7.Operation.

2
0 587
Question Yone Moreno · Aug 18, 2020

Hello,

We would need to handle the following use case:

A system replies to our GET with a list of codes and a signature.

Each code has been signed with the SHA512withECDSA algorithm

We would need to:

1 Concatenate all codes in a string

2 Decode the string which is in Base 64

3 Validate the string using the signature which we get in the reply

We have read for step 2:

Base64Decode

https://cedocs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.c….

1
0 364
Question Yone Moreno · Aug 18, 2020

Hello,

We would need help.

We have used the following commands:

set fecha = "2021-08-18T07:44:14.180+0000"

set nuevaFecha = ##class(Ens.Util.Time).ConvertDateTime(fecha,"%Y-%m-%d%T%H:%M:%S","%d/%m/%Y")

And when we write it to the terminal:

w nuevaFecha

It outputs nothing

Could you help us?

We have read:

https://cedocs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.c…

https://community.intersystems.com/post/string-date

3
0 516
Question Yone Moreno · Jul 21, 2020

It would be interesting if there is some recommended documentation about best practices using Healthshare for interoperability.

Also, some how-tos or frequently asked questions about ObjectScript.

Or event better, if there are experienced developers who would like to share some common habits on their work with Studio / ObjectScript, which are valuable to do the developing work better.

For example, How to get the XML of a class and write it into a REST operation:

...

Method X(pRequest As Mensajes.ServiciosGeneralRequest, ...){

set writer=##class(%XML.Writer).%New()
set status=

1
0 282
Question Yone Moreno · Jul 15, 2020

Hello,

We would need to know the Ens.Response SourceConfigName to identify which Operation has raised an exception.

We have tried:

$$$LOGINFO("..%Process.%PrimaryResponseHeader.SourceConfigName..: "_..%Process.%PrimaryResponseHeader.SourceConfigName) //It outputs an empty string
 
$$$LOGINFO("response.SourceConfigName: "_response.SourceConfigName) //It generates an exception

We would need to get from an Ens.Response which body is null, its SourceConfigName:

How could we know it? 📛

2
0 514
Question Yone Moreno · Jul 7, 2020

Hello,

We wonder how could we get the following attribute:

Which is found in the response Header being sent from a Operation to a Process, when there is an exeptionWwe would need to access the Response ErrorStatus text in the Process

We have already tried:

$$$LOGINFO("..%Process.%PrimaryRequestHeader.ErrorStatus: "_..%Process.%PrimaryRequestHeader.ErrorStatus) //It shows "1"

$$$LOGINFO("$System.Status.GetErrorText(..%Process.%PrimaryRequestHeader.ErrorStatus): "_$System.Status.GetErrorText(..%Process.%PrimaryRequestHeader.ErrorStatus))  //It shows an empty string
1
0 254
Question Yone Moreno · Jun 24, 2020

Hello,

We wonder how could we send an HL7 message to a service to test it.

For example, we have a service, at localhost port 19111

We have tried to use SoapUI to send a REST POST request as follows:

At the event log we see the following trace:

Then, if we try with POSTMAN as follows:

We observe:

Would it be the only way to test services, pointing a TCP HL7 operation to the service, and send messages using the Test Action?

We mean that we are testing manually sending messages from the operation "ProbarADTs" to "Servicios.TCP.GeneralHospitalADT":

How could we do it from SoapUI or Postman?

3
0 3691
Question Yone Moreno · Jun 16, 2020

Hello,

We would like to learn how would you approach this task.

We would need to check every day a set of folders which are outside our server (in fact we could see them as if they were "inside" the server), then we need to check for modified or created files in the last day, and move all the ones which match the criteria to just one folder in our server.

We have thought about doing the following:

1) Create a task to run it each day:

Class Tareas.SaludPublica.EjecutarComando Extends %SYS.Task.Definition
{ Method OnTask() As %Status
{
 set tSC = ##class(Ens.Director).CreateBusinessService("Servicios.

5
0 800
Question Yone Moreno · Jun 15, 2020

Hello,

We would need to iterate all over the OBXs list and get their OBX3 CE1 to determine if it is the lab result we need to send to the output system.

We wonder how could we achieve this in a foreach component inside a Bussiness Process.

We think we would need to use a foreach because of it is needed to generate a message, for each one of the OBX which have the OBX3 CE1 that the output systems uses for the lab results.

1
0 712
Question Yone Moreno · Jun 1, 2020

Hello,

We are wondering how could we iterate over a segments list,

The use case is that we are sending from Process X to process Y a message, only if at the OBR4 CE1 there is a certain code.  We were getting this field as follows:

set context.studyReason = request.GetValueAt("ORCgrp(1).OBRuniongrp.OBRunion.OBR:UniversalServiceIdentifier.Identifier")

How could we iterate over the following message and get both OBR4 CE1 (1 and 2):

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Header/>
    <SOAP-ENV:Body>
        <ORM_O01>
            <MSH>
                <MSH.1>|</MSH.1>
                <MSH.2>^~\&amp;</MSH.2>
                <MSH.3>
                    <HD.1>sistemaExterno</HD.1>
                </MSH.3>
                <MSH.4>
                    <HD.1>27</HD.1>
                    <HD.2>PRUEBAS</HD.2>
                </MSH.4>
                <MSH.5>
                    <HD.1>380316</HD.1>
                </MSH.5>
                <MSH.6>
                    <HD.1>EXTHL7</HD.1>
                </MSH.6>
                <MSH.7>
                    <TS.1>20200429114820</TS.1>
                </MSH.7>
                <MSH.8></MSH.8>
                <MSH.9>
                    <MSG.1>ORM</MSG.1>
                    <MSG.2>O01</MSG.2>
                    <MSG.3>ORM_O01</MSG.3>
                </MSH.9>
                <MSH.10>65636</MSH.10>
                <MSH.11>
                    <PT.1>E</PT.1>
                </MSH.11>
                <MSH.12>
                    <VID.1>2.5</VID.1>
                </MSH.12>
                <MSH.13>1</MSH.13>
                <MSH.16>AL</MSH.16>
                <MSH.18>ASCII</MSH.18>
            </MSH>
            <ORM_O01.PATIENT>
                <PID>
                    <PID.1>1</PID.1>
                    <PID.2>
                        <CX.1>FCCT540403904019</CX.1>
                    </PID.2>
                    <PID.3>
                        <CX.1>11645069</CX.1>
                        <CX.4>
                            <HD.1>MPI</HD.1>
                        </CX.4>
                        <CX.5>11645069</CX.5>
                    </PID.3>
                    <PID.3>
                        <CX.1>FCCT540403904019</CX.1>
                        <CX.4>
                            <HD.1>TISR</HD.1>
                        </CX.4>
                        <CX.5>FCCT540403904019</CX.5>
                    </PID.3>
                    <PID.3>
                        <CX.1>92920000T</CX.1>
                        <CX.4>
                            <HD.1>DNI</HD.1>
                        </CX.4>
                        <CX.5>92920000T</CX.5>
                    </PID.3>
                    <PID.4>
                        <CX.1>11645069</CX.1>
                    </PID.4>
                    <PID.5>
                        <XPN.1>
                            <FN.1>CIUDADANO</FN.1>
                        </XPN.1>
                        <XPN.2>FICTICIO</XPN.2>
                        <XPN.3>ACTIVO</XPN.3>
                    </PID.5>
                    <PID.7>
                        <TS.1>19540403000000</TS.1>
                    </PID.7>
                    <PID.8>M</PID.8>
                    <PID.11>
                        <XAD.1>
                            <SAD.1>C/</SAD.1>
                            <SAD.2>ABREU Y GALINDO, 5</SAD.2>
                            <SAD.3>6</SAD.3>
                        </XAD.1>
                        <XAD.2>87</XAD.2>
                        <XAD.4>28</XAD.4>
                        <XAD.5>35001</XAD.5>
                    </PID.11>
                    <PID.13>
                        <XTN.1>922000000</XTN.1>
                    </PID.13>
                    <PID.19>380000012304</PID.19>
                    <PID.30>N</PID.30>
                    <PID.31>N</PID.31>
                </PID>
                <PD1>
                    <PD1.1>1</PD1.1>
                </PD1>
                <ORM_O01.PATIENT_VISIT>
                    <PV1>
                        <PV1.1>1</PV1.1>
                        <PV1.2>1</PV1.2>
                        <PV1.7>
                            <XCN.1>DAMIAN ALVAREZ PEREZ</XCN.1>
                        </PV1.7>
                        <PV1.8>
                            <XCN.8>27950104</XCN.8>
                        </PV1.8>
                        <PV1.10>APLP</PV1.10>
                        <PV1.11>
                            <PL.1>27</PL.1>
                        </PV1.11>
                        <PV1.15>27</PV1.15>
                        <PV1.30>20200429</PV1.30>
                        <PV1.35>20200429</PV1.35>
                        <PV1.50>
                            <CX.1>11645069</CX.1>
                            <CX.2>LABAP</CX.2>
                        </PV1.50>
                    </PV1>
                </ORM_O01.PATIENT_VISIT>
            </ORM_O01.PATIENT>
            <ORM_O01.ORDER>
                <ORC>
                    <ORC.1>HD</ORC.1>
                    <ORC.3>
                        <EI.1>11111</EI.1>
                    </ORC.3>
                    <ORC.7>
                        <TQ.6>1</TQ.6>
                    </ORC.7>
                    <ORC.8>
                        <EIP.1>
                            <EI.1>65639</EI.1>
                        </EIP.1>
                    </ORC.8>
                    <ORC.10>
                        <XCN.1>43794017Q</XCN.1>
                    </ORC.10>
                    <ORC.13>
                        <PL.1>CON</PL.1>
                    </ORC.13>
                    <ORC.16>
                        <CE.1>PC</CE.1>
                        <CE.2>Study</CE.2>
                    </ORC.16>
                </ORC>
                <ORM_O01.ORDER_DETAIL>
                    <ORM_O01.OBRRQDRQ1RXOODSODT_SUPPGRP>
                        <OBR>
                            <OBR.1></OBR.1>
                            <OBR.4>
                                <CE.1>1</CE.1>
                                <CE.2></CE.2>
                            </OBR.4>
                            <OBR.18>LAB</OBR.18>
                            <OBR.19>LAB</OBR.19>
                        </OBR>
                    </ORM_O01.OBRRQDRQ1RXOODSODT_SUPPGRP>
                    <NTE>
                        <NTE.3>Observations
                        </NTE.3>
                    </NTE>
                </ORM_O01.ORDER_DETAIL>
                <ORM_O01.ORDER_DETAIL>
                    <ORM_O01.OBRRQDRQ1RXOODSODT_SUPPGRP>
                        <OBR>
                            <OBR.1></OBR.1>
                            <OBR.4>
                                <CE.1>2</CE.1>
                                <CE.2></CE.2>
                            </OBR.4>
                            <OBR.18>LAB</OBR.18>
                            <OBR.19>LAB</OBR.19>
                        </OBR>
                    </ORM_O01.OBRRQDRQ1RXOODSODT_SUPPGRP>
                    <NTE>
                        <NTE.3>Observations
                        </NTE.3>
                    </NTE>
                </ORM_O01.ORDER_DETAIL>
            </ORM_O01.ORDER>
        </ORM_O01>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
2
0 853
Question Yone Moreno · May 19, 2020

Hello,

We are trying to connect to a database through a JavaGateway.

We observe that the JavaGateway reports:

Failed to start the Java Gateway server: ERROR #5002: Error de cache: <UNDEFINED>zGetJavaVersion+22^%Net.Remote.Service.1 *versionWithPrefix

We have checked that we do have the Java Home set:

/usr/java/jdk1.8.0_65

And we have seen the java files in the server:

We have read the code where the exceptions being raised:

/// Returns the numeric part of the Java version string (e.g. 1.8.0.1)
/// Rules of how the complete version string is formatted can be found here:
/// http://www.oracle.

2
0 763
Question Yone Moreno · May 13, 2020

Hello,

We have read the installation guide to get started with zpm package manager:

https://openexchange.intersystems.com/package/ObjectScript-Package-Mana…

We wonder what means the second step:

"Import the zpm.xml into IRIS and compile via any desired way (Management Portal, Studio or Terminal)"

We have thought that it means to place the zpm-0.2.2.xml file inside "C:\InterSystems\HealthShare_2\opt\contenedor"

Then in the terminal, go inside one namespace:

zn "esbsscc"

After that we load and compile the .xml:

write $SYSTEM.OBJ.Load("C:\InterSystems\HealthShare_2\opt\contenedor\zpm-0.2.2.

7
1 1844
Question Yone Moreno · May 11, 2020

Hello,

We would like to know if Ensemble could generate a CADES sign from a string and a certificate.

We have read:

https://cedocs.intersystems.com/latest/csp/docbook/Doc.View.cls?KEY=GXM…

So we have seen that we could create a class, to sign a document, and store the sign inside that new class. We have also seen that there are some different algorithms to choose from, like sha1.

In addition we have also consulted the CADES sign definition:

https://tools.ietf.org/html/rfc5126

The use case is to avoid being dependant of an external web service, and be able to generate it.

1
0 233
Question Yone Moreno · Apr 30, 2020

Hello,

We would need to convert a message from the following class:

Class Mensajes.Request.Laboratorio.HL7Request Extends Ens.Request [ ClassType = persistent, ProcedureBlock ]
{ Parameter RESPONSECLASSNAME = "Mensajes.Response.Laboratorio.ACKResponse";

Property mensaje As %XML.GlobalCharacterStream(CONTENT = "MIXED");

Property idPeticion As %String(MAXLEN = "");

Property ExpedienteUsuario As %String(MAXLEN = "");

Property MessageId As %String(MAXLEN = ""); Property ContentType As %String(MAXLEN = "");

to a Request message which is composed by hl7 segments:

Class Mensajes.Request.Laboratorio.

1
0 1054
Question Yone Moreno · Mar 27, 2020

Hello,

We are developing a BP where we would need to call at the same time to get appointments in two external systems. So then, we would need two threads, one for primary care appointments, and other for specialist appointments . We need to paralelize both calls because of both of them require some time and we would need to shorten it as much as possible.

3
0 405
Question Yone Moreno · Mar 26, 2020

Hello,

We are developing a method to take two messages which have a list of data types. It is being defined as:

Class Mensajes.Response.HistoriaClinica.ConsultaCitasResponse Extends Ens.Response [ ProcedureBlock ]
{

Property informacion As EsquemasDatos.HistoriaClinica.Informacion;

Property datos As list Of EsquemasDatos.HistoriaClinica.ConsultaCitas;

Property error As EsquemasDatos.HistoriaClinica.Error;

}

Inside datos we have:

Class EsquemasDatos.HistoriaClinica.ConsultaCitas Extends (%Persistent, %XML.

1
0 774
Question Yone Moreno · Mar 26, 2020

Hello,

We are developing a Transformation and we are wondering: how could we debug and show a XML message which is being an output from a transformation, without storing it into request/response/callrequest/callresponse? We mean, how could we show a context variable in the production?

For example, let's have a transformation which stores an appointment in a variable called: context.especializadasConFormatoPrimarias

How could we show in the Production?

1
0 297
Question Yone Moreno · Mar 26, 2020

Hello,

We have a tranformation where we would like to convert a date from the following format:

"'dd/mm/yyyy' 'hh:mm'" (double quotes are just visual to indicate this is a string)

to date and time separated:

date: dd/mm/yyyy

time: hh:mm

We have already splitted the datetime into date and hour as follows:

  set fechaHora = source.result.GetAt(indice).fechaHora
 
  $$$LOGINFO("fechaHora: "_fechaHora)
 
  set fechaHoraSinComillas = $replace(fechaHora,"'","")
 
  $$$LOGINFO("fechaHoraSinComillas: "_fechaHoraSinComillas)  
 
  set fecha = $piece(fechaHoraSinComillas," ")
 
  $$$LOGINFO("fecha: "_fecha)
 
  set hora = $piece(fechaHoraSinComillas," ",2)
 
  $$$LOGINFO("hora: "_hora)
1
0 516