go to post Enrico Parisi · Feb 28 Are you running it from an elevated (administrator or equivalent) command prompt?
go to post Enrico Parisi · Feb 28 New variant that I like it better 😀 %SYS>Set ResultSet=##class(Config.Namespaces).ListFunc() %SYS>While ResultSet.%Next() { Write ResultSet.%Get("Namespace"),$c(9),ResultSet.%Get("Globals"),$c(9),ResultSet.%Get("Routines"),!} %ALL %DEFAULTDB %DEFAULTDB %SYS IRISSYS IRISSYS USER USER USER %SYS>
go to post Enrico Parisi · Feb 28 I'm not sure I understand your question, probably not. If you need to transform a message and then apply/evaluate rules, then create two HL7 Routing Business Processes, each with a Routing Rule associated. The first BP and associated rule transform the message and send it to the second BP where you can apply rules to the transformed message. But....probably I did not understand the question! 😊
go to post Enrico Parisi · Feb 28 You already answered your question....in the question! 😊 From %SYS namespace, use the List class query in the Config.Namespaces class: %SYS>Set ResultSet=##class(Config.Namespaces).ListFunc() %SYS>Do ResultSet.%Display() Namespace Globals Routines System Globals System Routines LibraryTemp Storage %ALL %DEFAULTDB %DEFAULTDB IRISSYS IRISSYS IRISLIB IRISTEMP %SYS IRISSYS IRISSYS IRISSYS IRISSYS IRISLIB IRISTEMP USER USER USER IRISSYS IRISSYS IRISLIB IRISTEMP 5 Rows(s) Affected %SYS> Or, if you prefer: %SYS>Set statement=##class(%SQL.Statement).%New() %SYS>Set status=statement.%PrepareClassQuery("Config.Namespaces","List") %SYS>Set resultset=statement.%Execute() %SYS>While resultset.%Next() { Write resultset.%Get("Namespace"),$c(9),resultset.%Get("Globals"),$c(9),resultset.%Get("Routines"),!} %ALL %DEFAULTDB %DEFAULTDB %SYS IRISSYS IRISSYS USER USER USER %SYS>
go to post Enrico Parisi · Feb 28 I'm not sure what you mean with "the nice argument documentation for the arguments". Do you have an example?
go to post Enrico Parisi · Feb 28 Hi Luis, I've never used a BS witout the usual ProcessInput() call, anyway, from a BS you cannot call SendRequestAsync() with a response. If you need a response in a BS then you must call SendRequestSync().
go to post Enrico Parisi · Feb 28 A Business Process can only be invoked/called from a Business Service within an Interoperability Production. You can invoke/call a Business service from your code/application with: Set sc = ##class(Ens.Director).CreateBusinessService("BusinessServiceName", .BService) If $$$ISERR(sc) ; handle error here Set sc = BService.ProcessInput(BSRequest,.BSResponse)
go to post Enrico Parisi · Feb 27 Maybe (likely!) I misunderstood your question. What do you mean with "But some other namespaces on the same server could be mapped to a different namespace or even mapped to itself." ? A namespace cannot be mapped to another namespace. A namespace definition consists of default database for globals, default database for "routines" (all code) and optionally global/package/routine mappings to different databases. (Plus some default system mapping)
go to post Enrico Parisi · Feb 27 Form the %SYS namespace you can use the List class query in the Config.MapRoutines class. For example: %SYS>Set ResultSet=##class(Config.MapRoutines).ListFunc("USER") %SYS>d ResultSet.%Display() Name Routine Type Database MyTestRoutine MyTestRoutine TRAINING 1 Rows(s) Affected %SYS>Write ResultSet.%ClassName(1) %SQL.ClassQueryResultSet %SYS>
go to post Enrico Parisi · Feb 26 WOW! Nice! But...is there any reason why this is not documented? When was it introduced?A quick test shows it was not available in Caché based products, that is 2018 and is available in 2022.1.At the moment I cannot test version 2019 to 2021.
go to post Enrico Parisi · Feb 26 To properly display the status use: Set statusText=$system.Status.GetErrorText(status)
go to post Enrico Parisi · Feb 25 First I'd suggest to change: Set httpRequest.Server = "http://127.0.0.1:8080" to: Set httpRequest.Server = "127.0.0.1" Set httpRequest.Port = "8080" I would also check the status after: Set status = httpRequest.Post("/collect_patient_information") And then try again.
go to post Enrico Parisi · Feb 22 And last but not least, don't forget to cleanup. Who/when ^SPOOL is cleaned?What part should I clean? Just a shameless Kill ^SPOOL ? IMHO, in addition to @Alexey Maslov notes, that's another (good) reason why device 2, the spool device, has been log forgotten (and buried) for good.
go to post Enrico Parisi · Feb 22 You mention you need to connect to Ensemble but your product version says IRIS. I assume you need to connect to IRIS. In Windows you can install IRIS ODBC drivers and in Control Panel create a DSN to connect to a IRIS Namespace. Then in SSMS follow the instructions to connect to an external database using an ODBC DSN (I have no experience on this).Make sure you use the correct 32 or 64 bits driver and DSN definitions (in Windows you can define 32 or 64 bits DSN), I'm not sure if Microsoft SQL Server Management Studio (SSMS) is 32 or 64 bits application, find that out first. Another option is to use IRIS JDBC drivers, make sure you install the correct Java JRE for the JDBC drivers you are using. Since this is windows, maybe ODBC is more convenient.
go to post Enrico Parisi · Feb 22 I'd suggest to start with the documentation pages: Defining and Using XData Blocks XData Syntax and Keywords There you can find a lot of info to start with, then if you need additional info come back with more specific questions.
go to post Enrico Parisi · Feb 21 I would say no. Lookup Tables are simple and ready to use, if you need more, it's relatively simple to implement a custom functionality with audit, lat modification time, user etc.
go to post Enrico Parisi · Feb 21 I don't think this information is stored in Lookup Tables. Only table name, key and value are stored.
go to post Enrico Parisi · Feb 21 I'm not sure what "HL7 Reference Guide" exactly means for you, however, within "health enabled products" (IRIS for Health, Healthhare Connect, Healthshare UCR etc.) there are "HL7 Schemas" for all HL7 v2 variants up to 2.8.2. Can be accessed from Management Portal Interoperability -> Interoperate -> HL7 v2.x -> HL7 v2.x Schema Structures. There, for each version you can browse in detail the HL7 message structure, segments, field, subfields etc down to code tables associated to coded entries/fields. If you don't have IRIS for Health, you can download IRIS for Health community edition that is free for non commercial/production use (check license for details).