go to post Scott Roth · Jun 18 This is how i solved the issue Set tSC = pRequest.NewResponse(.tResponse) Quit:$$$ISERR(tSC) tSC Set tResponse.encodedMessage = $get(encodedMessage) set dMsg = $SYSTEM.Encryption.Base64Decode(tResponse.encodedMessage) set pResponse = ##class(EnsLib.HL7.Message).%New() set pResponse = ##class(EnsLib.HL7.Message).ImportFromString($Get(dMsg)) set pResponse.DocType = ##class(EnsLib.HL7.Schema).ResolveSchemaTypeToDocType(pResponse.TypeVersion,pResponse.Name)
go to post Scott Roth · Jun 18 This is how I solved the issue... Set tSC = pRequest.NewResponse(.tResponse) Quit:$$$ISERR(tSC) tSC Set tResponse.encodedMessage = $get(encodedMessage) set dMsg = $SYSTEM.Encryption.Base64Decode(tResponse.encodedMessage) set pResponse = ##class(EnsLib.HL7.Message).%New() set pResponse = ##class(EnsLib.HL7.Message).ImportFromString($Get(dMsg)) set pResponse.DocType = ##class(EnsLib.HL7.Schema).ResolveSchemaTypeToDocType(pResponse.TypeVersion,pResponse.Name)
go to post Scott Roth · Jun 11 [HealthConnect:3.5.0-1.m1] it was a group permission issue with the directory. However, once I created the DB, added it to the mirror on the Primary, I cannot get it to Sync with the others in the mirror. I removed it from the mirror for now till I have time to look at it again.
go to post Scott Roth · Apr 22 I was able to get it to work. I found that in Cache I need to call %Get("<column>") name vs what I am doing in a BPL. s Loc = "" s tStatement = ##class(%SQL.Statement).%New() s execall= "CALL osuwmc_Utils_EnterpriseDirDb.InterfaceCheckConnectMedCtrID(?)" s qStatus = tStatement.%Prepare(execall) if $$$ISERR(qStatus) {write "%Prepare failed:" do $SYSTEM.Status.DisplayError(qStatus) quit} set rset = tStatement.%Execute(pInput) while rset.%Next() { set Loc = rset.%Get("OSUguestRoleDTL") } if $Length(Loc) = 0 { set Loc = "OSUWMC" }
go to post Scott Roth · Apr 3 The rule was just routing the message through a DTL and sending it to two places in the same line. The message size was 12661. My team member just ended up splitting up the send line into multiple send lines instead of a single send line with two destinations.
go to post Scott Roth · Mar 13 The issue was with the query I was using. Those that wrote the query were renaming columns with ' ' but putting spaces in the new names. SELECT A AS 'ABC CDE' FROM TableName I think there was the Typo in my service code, because I never use spaces and assumed that the column names did not have spaces.
go to post Scott Roth · Feb 3 With some help from the Developer community, below is a Function I wrote for our needs to take a Base64 and write it out to a PDF. ClassMethod DecodeBase64HL7ToFileFaxing(base64 As %Stream.GlobalBinary, Ancillary As %String, FileName As %String) As %String { set ArchDir = <directory> set ArchAncDir = ArchDir_Ancillary_"/" set FaxDateDir = ArchAncDir_$PIECE($ZDATE($HOROLOG,7)," ",1)_"-"_$PIECE($ZDATE($HOROLOG,7)," ",2)_"-1/" if '##class(%Library.File).DirectoryExists(ArchDir) { do ##class(%Library.File).CreateDirectory(ArchDir) } if '##class(%Library.File).DirectoryExists(ArchAncDir) { do ##class(%Library.File).CreateDirectory(ArchAncDir) } if '##class(%Library.File).DirectoryExists(FaxDateDir) { do ##class(%Library.File).CreateDirectory(FaxDateDir) } set Oref = ##class(%Stream.FileBinary).%New() $$$LOGINFO(FaxDateDir_FileName) set Oref.Filename = FaxDateDir_FileName Do base64.Rewind() While 'base64.AtEnd { set ln = base64.ReadLine() set lnDecoded = $system.Encryption.Base64Decode(ln) do Oref.Write(lnDecoded) } Do Oref.%Save() do ##class(%File).SetAttributes(Oref,33261,.return) set Oref = "" // Close file set PDFFilePath = "/Fax/PDFFiles/"_Ancillary_"/"_$PIECE($ZDATE($HOROLOG,7)," ",1)_"-"_$PIECE($ZDATE($HOROLOG,7)," ",2)_"-1/"_FileName return PDFFilePath }
go to post Scott Roth · Jan 14 I am still working with WRC and Microsoft to determine where the issue is.
go to post Scott Roth · Dec 27, 2024 I ended up writing a function with some help from the Developer community to do this. The function basically iterates through the the HL7 message and check it against a Data Lookup Table. I am in the office in two week and will share it once I am back in the office.
go to post Scott Roth · Dec 18, 2024 I have seen this before on SQL Outbound Operations when we have had to force stop the BO when it was trying to call/execute a Stored Procedure. The only way we have seen to get rid of the empty PIDs is to stop/start the namespace.
go to post Scott Roth · Jul 16, 2024 In this post https://community.intersystems.com/node/539431 from Apr 6, 2023, @Mark O'Reilly mentions building a custom function to Purge Custom Messages using a Data Lookup table. However, it does delete by message count and not by days, which is something I am not fond of, and I haven't been able to get it to work for our needs either.
go to post Scott Roth · Jul 3, 2024 Robert is correct, more detail is needed. However, as an example, we take HL7 messages and using specific structure classes to match stored procedures, we send calls to an EnsLib.SQL.OutboundAdapter using JDBC to update, insert, and query MS SQL.
go to post Scott Roth · May 9, 2024 When using a Code block, I find that I have to put a space in at the beginning of the code.
go to post Scott Roth · May 6, 2024 I had to change the Access Control Rule (setfacl) on each of the files/folders to allow my non-root user access to the files/folders, using setfacl.
go to post Scott Roth · Apr 22, 2024 ConvertDateTime works well... Ens.Util.FunctionSet (ENSLIB namespace) - InterSystems IRIS Data Platform 2024.1 - including private class members when you call it within a DTL you can specify the incoming and outgoing formats like ..."%d/%m/%Y", "%Y%m%d"
go to post Scott Roth · Oct 30, 2023 We have turned off Telnet, and use ssh to connect to our servers, then open a terminal prompt by running... :>iris session <name space> There are many different clients out there from Windows Terminal, Cygwin, MobaXTerm, XWin32, even Windows Powershell would work with ssh. It all a matter of preference...
go to post Scott Roth · Oct 6, 2023 I tracked down the issue to %Service_Login being disabled, as I thought this service was just used for API calls and not internally.
go to post Scott Roth · Oct 6, 2023 While thinking about this, I am wondering if using an encryption key might be a possible solution as well that way there is limited access to the password, and the key would just have to be regulated to be updated every so often. With using a AD service account, the password still needs to be updated or kept up to date, and still needs to be passed into the shell script for Terminal to open. I have submitted the following IDEA... https://ideas.intersystems.com/ideas/DPI-I-466
go to post Scott Roth · Sep 6, 2023 I posted this as an Idea on the Idea Portal... https://ideas.intersystems.com/ideas/DPI-I-368
go to post Scott Roth · Aug 28, 2023 At the Java Gateway Service, I have specified the following JVM Args -d64 -XX:+DisableExplicitGC -XX:+AggressiveOpts At the %JDBCServer level, I have specififed -d64 -Xmx1024m -XX:+DisableExplicitGC -Xss512k I have often asked for Best Practices but have not had much response. You have to play with the settings as you go...