go to post Enrico Parisi · Mar 21 I think the product IS fully released since more than a week now: InterSystems announces General Availability of InterSystems IRIS 2024.1 Or I'm missing something? You even posted in the announce!
go to post Enrico Parisi · Mar 21 found no documentation on how to set a VECTOR Datetype on pure object level Maybe you can have a look to the documentation of $vector, $vectorop, $vectordefined and $isvector intrinsic functions.
go to post Enrico Parisi · Mar 19 The prerequisites for the InterSystems HL7 Interface Specialist certification include the training course and "At least 6 months - 1 year designing, building, and performing basic troubleshooting of HL7 interfaces with InterSystems products version 2019.1 or higher." Actual/real experience will definitely help in passing the certification, theoretical study and some exercise may not be enough to gain the knowledge required. In the exam description page you can find a list of "Exam Topics and Content". All questions in the exam belong to those topics. Last but not least, everything is contained in the documentation.
go to post Enrico Parisi · Mar 19 It contains the sender of the current request message being processed by the BO.
go to post Enrico Parisi · Mar 19 Within your BO method ..%RequestHeader.SourceConfigName contains the name of the "sender" Business Host.
go to post Enrico Parisi · Mar 19 Where/when do you want to know it? Usually you get this information looking at the trace of the session/message. Or you need to know the sender from within your BO code/method?
go to post Enrico Parisi · Mar 16 Parameter runtime computation works fine, you can test it from terminal: w ##class(ECUH.BPL.ClassMethods.X509CredentialAlias).#VALUELIST Long story short, you cannot use runtime computed VALUELIST in this context. I suggest using the proper, officially documented way to implement your requirement, see my first answer above.
go to post Enrico Parisi · Mar 15 Using the Curly Braces a parameter is evaluated at compile time: Parameter VALUELIST = {..GetValueList()}; You need to evaluate it at run time, in that case use COSEXPRESSION: Parameter VALUELIST As COSEXPRESSION = "..GetValueList()"; The the relevant documentation is: Defining and Referring to Class Parameters
go to post Enrico Parisi · Mar 15 I just realized that with IRIS for Health (and I maybe also HelthShare connect) ZAUTHENTICATE is mapped to HSLIB and you should use/modify HS.Local.ZAUTHENTICATE class in HSCUSTOM namespace.
go to post Enrico Parisi · Mar 15 If you are using HealthShare, and I do believe so, please read the following documentation (login required): Custom Authentication Processing using the Local ZAUTHENTICATE There you will find: Important: The ZAUTHENTICATE provided with HealthShare includes callbacks that allow you to add custom processing at specific entry points. Do not modify the supplied ZAUTHENTICATE. Instead, add your callback processing as class methods in the class HS.Local.ZAUTHENTICATE
go to post Enrico Parisi · Mar 15 If it was mapped to HSLIB, then I think you are using HealthShare, if so, you are not supposed to change that mapping, instead you should use/modify HS.Local.ZAUTHENTICATE class in HSCUSTOM namespace. I believe the mapping will be recreated when updating/upgrading the system.
go to post Enrico Parisi · Mar 15 I don't think there is a callback method available. One option could be to subclass %CSP.REST and use your subclass instead of %CSP.REST. You subclass can be something like: Class MyCustomCSP.REST Extends %CSP.REST { ClassMethod DispatchRequest(url As %String, method As %String, forwarded As %Boolean = 0, args...) As %Status { Set sc=##super(url,method,forwarded,.args) ; your "onPostDispatch" code here Quit sc } }
go to post Enrico Parisi · Mar 14 This post should give you details on how to implement it: Dynamic/SQL Drop down list for Business Operation Property Setting X509 credentials are stored in %SYS.X509Credentials.cls, you can use SQL or use a query defined in %SYS.X509Credentials class.
go to post Enrico Parisi · Mar 13 "...the write() function seems to be overlaying the whole stream..." Of course, that's the way a stream works as designed. The resulting (target) stream will contains what the Write() method writes to the stream. And only that. If this is not what you expect, then please provide more details on your goal.
go to post Enrico Parisi · Mar 13 Just in case, try adding a "code" action BEFORE your actions with: Do source.Stream.Rewind() Do target.Stream.Clear()
go to post Enrico Parisi · Mar 13 How big (Size) is the stream? If it's larger then the maximum string supported string length (~3.5MB), then you have a problem with your code. When it does not work, do you get an error? In the DTL, how do you set the "Create" option/parameter? (copy or new?) Is there any other reference/set referencing the Stream in the DTL?
go to post Enrico Parisi · Mar 13 What product? If it's HealthShare then you should use the class HS.Local.ZAUTHENTICATE in HSCUSTOM namespace.
go to post Enrico Parisi · Mar 13 If you use server side editing, you can have as many servers/namespaces as you need in Explorer. In many environments server side editing in much more convenient.
go to post Enrico Parisi · Mar 13 In fact, for simple XML export (no namespace and other amenities) you can just use XMLExport*() methods. ClassMethod test() { Set message=##class(Mensajes.Response.Radiologia.NumeroOrdenAcodigoSERAMResponse).%New() Set message.resultado.codigo="06050301" Set message.resultado.error=##class(EsquemasDatos.Seguridad.Error).%New() Set message.resultado.error.codigo=0 Set message.resultado.error.descripcion="Proceso realizado correctamente" Set sc=message.resultado.XMLExportToString(.string) ; handle sc error here Write string,!! ; convert XML string back to object Set reader = ##class(%XML.Reader).%New() Set sc=reader.OpenString(string) ; handle sc error here Do reader.Correlate("resultado","EsquemasDatos.Radiologia.Resultado") Do reader.Next(.ReturnObject,.sc) ; handle sc error here Write "ReturnObject is of type ",ReturnObject.%ClassName(1),! do ReturnObject.XMLExport(,",indent") Quit } Result: Do ##class(Mensajes.Response.Radiologia.NumeroOrdenAcodigoSERAMResponse).test() <resultado><error><codigo>0</codigo><descripcion>Proceso realizado correctamente</descripcion></error><codigo>06050301</codigo></resultado> ReturnObject is of type EsquemasDatos.Radiologia.Resultado <resultado> <error> <codigo>0</codigo> <descripcion>Proceso realizado correctamente</descripcion> </error> <codigo>06050301</codigo> </resultado>