go to post Marc Mundt · Jan 31 We tracked this down to a core VS Code setting that filters out certain subdirectory names. Removing the entry in this list for "CVS" solved the problem.
go to post Marc Mundt · Nov 20, 2024 Yeah, so something like this: for colnum=1:1:snapshot.GetColumnCount() { write snapshot.GetColumnName(colnum),"=",snapshot.GetData(colnum),! }
go to post Marc Mundt · Nov 11, 2024 I haven't used it before, but this looks like it fits the bill: https://docs.intersystems.com/irisforhealth20242/csp/documatic/%25CSP.Do... https://docs.intersystems.com/irisforhealth20242/csp/docbook/DocBook.UI....
go to post Marc Mundt · Jul 9, 2024 As you noted, fromDao is in the HS.FHIRModel classes, but in the code you pasted you're actually using a class under HS.FHIR: Set cls = $CLASSMETHOD("HS.FHIR.DTL.vR4.Model.Resource.Patient","fromDao",dao) I think you want to do this instead: Set cls = $CLASSMETHOD("HS.FHIRModel.R4.Patient","fromDao",dao) https://docs.intersystems.com/irisforhealth20241/csp/documatic/%25CSP.Do...
go to post Marc Mundt · May 7, 2024 The Interoperability FHIR Client can handle the OAuth pieces. It uses HTTPOperation for transport but does the work of setting everything up: https://docs.intersystems.com/irisforhealth20233/csp/docbook/DocBook.UI....
go to post Marc Mundt · May 10, 2023 Have a look at the HTTP Passthrough Service/Operation. They work with messages of type EnsLib.HTTP.GenericMessage, which can be used in a similar way to what you described with Interop requests.
go to post Marc Mundt · Jan 18, 2023 I've seen Zen reports used extensively for Chinese content, so they can definitely handle the far reaches of the Unicode realm. What happens if you do this? write !,"<PostInfo>My GE: "_$c(8805)_"</PostInfo>" or this? write !,"<PostInfo>My GE: "_$zcvt($c(8805),"O","UTF8")_"</PostInfo>" Some other things to check: Check if the TTF file for the font you're using contains that glyph. Make sure your report is set to use UTF-8 encoding: https://docs.intersystems.com/ens201815/csp/docbook/DocBook.UI.Page.cls?... Look at the intermediary files (the .xml which contains the data in particular) that Zen generates to see if/how that item was output: https://docs.intersystems.com/ens201815/csp/docbook/DocBook.UI.Page.cls?... https://docs.intersystems.com/ens201815/csp/docbook/DocBook.UI.Page.cls?... Check to see if FOP is reporting any errors: https://docs.intersystems.com/ens201815/csp/docbook/DocBook.UI.Page.cls?...
go to post Marc Mundt · Oct 18, 2022 The ORC group is repeating, and all of it's child segments are optional, so you can iterate through the ORC group in order to get at the OBRs that it contains. But... you can also just set the DTL create mode to "copy" and all of the segments will get copied over automatically without needing to iterate through each ORC.
go to post Marc Mundt · Oct 13, 2022 Have you looked into tuning the JVM heap settings? It's possible the JVM is running out of heap space. https://www.baeldung.com/jvm-parameters
go to post Marc Mundt · Oct 13, 2022 There are some open source tools that can convert from XLSX to CSV. You could call out to these from your ObjectScript code:https://csvkit.readthedocs.io/en/latest/tutorial/1_getting_started.html#...https://stackoverflow.com/questions/10557360/convert-xlsx-to-csv-in-linu...
go to post Marc Mundt · Sep 22, 2022 Here's information on the Python library for working with .zip files: https://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.open
go to post Marc Mundt · Sep 20, 2022 "#" is for referring to a parameter defined in the class. Parameters are similar to static variables in Java. https://docs.intersystems.com/irisforhealth20221/csp/docbook/DocBook.UI....
go to post Marc Mundt · Sep 16, 2022 Hopefully this can save you some work. It uses a much larger chunk size (which is a multiple of 57) and works with or without CR/LFs (set the argument pAddCRLF): Class Example.B64.Util Extends %RegisteredObject { /// Be cautious if changing CHUNKSIZE. Incorrect values could cause the resulting encoded data to be invalid. /// It should always be a multiple of 57 and needs to be less than ~2.4MB when MAXSTRING is 3641144 Parameter CHUNKSIZE = 2097144; ClassMethod B64EncodeStream(pStream As %Stream.Object, pAddCRLF As %Boolean = 0) As %Stream.Object { set tEncodedStream=##class(%Stream.GlobalCharacter).%New() do pStream.Rewind() while ('pStream.AtEnd) { set tReadLen=..#CHUNKSIZE set tChunk=pStream.Read(.tReadLen) do tEncodedStream.Write($System.Encryption.Base64Encode(tChunk,'pAddCRLF)) if (pAddCRLF && 'pStream.AtEnd) { do tEncodedStream.Write($c(13,10)) } } do tEncodedStream.Rewind() quit tEncodedStream } }
go to post Marc Mundt · Jul 21, 2022 My experience with Zebras was quite a few years ago, so this may or may not still apply... Using Zen reports at the time, the print server would end up rendering the label as a bitmap and sending that over to the Zebra. ZPL code to print an equivalent label was much smaller than a bitmap, so ZPL labels tended to print faster than those rendered by a report.
go to post Marc Mundt · Jun 14, 2022 Ok, so the flow would look roughly like this: The GenericService accepts an inbound REST request, populates a GenericMessage, and sends it to your business process Business process extracts the JSON payload from the GenericMessage, and pulls out any relevant details needed for the call to Athena Business process creates a new GenericMessage, populates any items needed by Athena, uses %SYS.OAuth2 (and the OAuth client profile you created) to request an OAuth token and adds it to the GenericMessage, and passes the new GenericMessage to the business operation. Business operation makes the outbound REST call to Athena, and returns a new GenericMessage containing the response to your business process. Business process extracts JSON payload from the GenericMessage, uses a transformation to create the payload required by your internal REST client. Business process creates a new GenericMessage, populates it with the response payload, and returns it to the GenericService GenericService returns response to REST client
go to post Marc Mundt · May 24, 2022 Fortunately it's a simple issue. In your CALL action, you need to add a "Request Action" and set callrequest to the object you want to send to the BO. It looks like you're just modifying the inbound request so you could just set callrequest to request.
go to post Marc Mundt · Apr 29, 2022 You can put something similar to Jeffrey's logic directly in the Value of the Set action. Instead of using $E ($EXTRACT) you would use DTL's built-in SubString function: ..SubString("123456789",1,3)_"-"_..SubString("123456789",4,5)_"-"_..SubString("123456789",6,9)
go to post Marc Mundt · Apr 26, 2022 Since this is a new design you should use persistent classes (SQL tables/objects) instead of writing directly to globals. A Data Transformation can use any persistent class as it's target, so this is also easier than storing directly in globals. https://docs.intersystems.com/irisforhealthlatest/csp/docbook/DocBook.UI...
go to post Marc Mundt · Apr 25, 2022 Have a look at this previous thread. And there's a built-in capability in IRIS to see ports in use by different components.