Scott Roth · Nov 3, 2021 go to post

Yeah unfortunately I am unable to get Docker Desktop working inside of WSL2. There is some limitation inside of my Virtual Machine that is not letting me install/run it.

Thanks

Scott

Scott Roth · Nov 2, 2021 go to post

How do I install Intersystems IAM manager without using a docker container?

Scott Roth · Oct 22, 2021 go to post

So how do you know which is best to use? Currently we are using EDI to ingest an XML file from WorkDay, but we are running into throughput issues, so I was thinking it might be related to the service. We take the ingested data and put it into a class file, using a BPL and DTL, that is executed using a stored procedure to insert the data into a MS SQL table. 

Scott Roth · Oct 21, 2021 go to post

I am confused so bare with me... We currently use EnsLib.EDI.XML.Service.FileService to read the data and send it to a BPL which we just insert the data elements into the parameters for the stored procedure call.  Are you saying we need to add another step in between? Is the SAX Parser only part of IRIS? We are still on Healthshare 2018.1.3 for the time being.

The documentation doesn't always give clear views on how it should be setup within the GUI. I tried looking for an example in ENSDEMO but did not see one. Do you have an example?

Scott Roth · Oct 21, 2021 go to post

I believe the bottleneck is in the BPL with the sheer quantity/format of records.

I have done several BPL's that take either flat file data, or HL7 messages and insert them into SQL tables using a JDBC Stored Procedure call. 

Looking over the Adapter you mention, how is that different than just inserting the data into a stored procedure to do the insert? It appears that you are creating the "Dynamic" SQL statement in the class file to be sent and executed. In the past I have tried making "Dynamic" SQL statements through a JDBC call and it slows the process down, because the SQL statement will have to be built in SQL before it executes. With Stored Procedures the SQL statement is already on the MS SQL database so it just needs to pass the variables, and doesn't have to add that extra step of validating, and building the SQL query before execution.

Scott Roth · Oct 4, 2021 go to post

I do something similar to what you are trying to do, I Decode the PDF, save the PDF locally, and return a path to the DTL.

Several on the developer community helped me figure this out...

ClassMethod DecodeBase64HL7ToFile(base64 As %Stream.GlobalBinary, Ancillary As %String, FileName As %String) As %String

{

    set ArchDir = "/ensemble/data/transfer/AncillaryPDF/"

    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(%FileBinaryStream).%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()

    set PDFFilePath = FaxDateDir_FileName

    return PDFFilePath

}

Scott Roth · Jun 17, 2021 go to post

I believe Intersystems has stopped any development/enhancements on the Atelier plug in. They are now more focusing on using Visual Studio Code. Personally I never got into Atelier, but Visual Studio Code seems to be better than IRIS Studio.

Scott Roth · Apr 23, 2021 go to post

Does this make sense.. What if I didn't use the %SYS.OAuth2 library and just treat it as another POST object that I put in my Operation as OnInit()? Do you think that would work?

Scott Roth · Apr 23, 2021 go to post

Where would I put the Key that they gave me?

{
"Key" : "xxxxxxxxxxxxxxxxxxxxxxxx",
"Id": "xxxxx",
"Secret": "xxxxx",
"Resource": "xxxxx",
"Instance" : "xxxxx"
}

Scott Roth · Apr 22, 2021 go to post

When I attempt to "Discover and Save", I get....ERROR #6059: Unable to open TCP/IP socket to server localhost:80. But I do not want it to go out port 80.

Scott Roth · Apr 22, 2021 go to post

So I re-read the vendor's documentation. They are using Oauth, and passing back a Token to use when sending Requests. Can I build Oauth into the Operation? If so does anyone have examples of doing this? 

Scott Roth · Apr 22, 2021 go to post

I haven't tried even building it yet to be sure. But it does need to be sent via HTTPS. How would I create a custom header for this?

Scott Roth · Mar 3, 2021 go to post

I am seeing the same error, below is what my cconsole.log is displaying

03/03/21-12:57:08:095 (39846580) 0 tpopen for host www.osumc.edu device number 61400583 port 443  mode 0x8848 tcpmode 0x124 terminators  ibfsz 8192 obfsz 8192 queuesize 5 timeout 5 tcpsbuf=0 tcprbuf=0, XY=of
f, BINDTO=10.82.124.91
03/03/21-12:57:08:095 (50397494) 0

SSL/TLS configuration: OSUWMC
03/03/21-12:57:08:097 (39846580) 0
Cipher list: ALL:!aNULL:!eNULL:!EXP:!SSLv2
03/03/21-12:57:08:097 (39846580) 0
Trusted certificate file: /ensemble/TestClin/mgr/LDAPKeyStore/OSUWMC_CA.cer
03/03/21-12:57:08:097 (39846580) 0
^MPeer verification option = 1, certificate depth = 9
03/03/21-12:57:08:097 (39846580) 0
SSL/TLS client requested.
03/03/21-12:57:08:100 (39846580) 0
Verify error with X.509 certificate at depth 2
03/03/21-12:57:08:100 (39846580) 0
Subject: /C=US/ST=New Jersey/L=Jersey City/O=The USERTRUST Network/CN=USERTrust RSA Certification Authority
03/03/21-12:57:08:100 (39846580) 0
Issuer: /C=GB/ST=Greater Manchester/L=Salford/O=Comodo CA Limited/CN=AAA Certificate Services
03/03/21-12:57:08:100 (39846580) 0
Error: 20, unable to get local issuer certificate
03/03/21-12:57:08:100 (39846580) 0
SSL/TLS error return from SSL_connect().
03/03/21-12:57:08:100 (39846580) 0
SSL_ERROR_SSL: protocol error
03/03/21-12:57:08:100 (39846580) 0
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
03/03/21-12:57:08:100 (39846580) 0
TPXMIT saw TCP device fail

Scott Roth · Feb 5, 2021 go to post

I was never able to get this to work, and now I have another case where I need to do something similar as I have a linked table that is dynamic and need to use as a filter in a router. Can someone see what I might be doing wrong?

Thanks

Scott

Scott Roth · Jan 14, 2021 go to post

I keep getting the following...

ERROR <Ens>ErrException: <UNDEFINED>zTransform+134 ^osuwmc.EpicOMStoMatSysTecsysBkLoad.1 *%Ensemble("FeederScottRouting") -- logged as '-'
number - @'
set bp = %Ensemble("FeederScottRouting")'

Scott Roth · Jan 14, 2021 go to post

So...

%Ensemble("%Process") should be the Business Process (aka Router) that is calling the original DTL?
Scott Roth · Jan 14, 2021 go to post

I think I found a way to handle it but I am struggling on how to send an Ens.Request message to another Operation in the middle of a DTL. I tried this through a function, but Ensemble does not recognize the SendRequestSync that I am trying to send.

Is it possible to send another message to another Business Operation using Code/Function in the middle of a DTL?

Scott Roth · Dec 10, 2020 go to post

For those that do not know what those tools are and are just getting into SQL, navigating around the tool within IRIS/HealthShare can be difficult at times. Even trying to use those tools can be complicated in setting up the necessary connections and settings.

Scott Roth · Dec 10, 2020 go to post

I would like to see a more modern SQL management/editor within IRIS. 

Scott Roth · Dec 7, 2020 go to post

I figured querying a local table through an SQL call in the DTL would cut down on the amount of development that is needed. I created a view with only 2 columns of the data set and wrote a custom function so my other team members could use it. So far so good.

Scott Roth · Nov 16, 2020 go to post

We have used Length many times in Routing rules to check to see if Admit/Discharge date exists. We haven't quite used HL7.{PV1:45} to get the field, we let the system spell it out for us... so instead of HL7.{PV1:45} we allow the system to put it in the nomenclature that it knows the field as.. in this case HL7.{PV1:AdmitDateTime.Time}

Scott Roth · Nov 12, 2020 go to post

Nicole, I believe your problem is with the repeating fields. You can not leave () blank. You will need to use a counter or loop through OBX to look for the individual fields you are looking for.

Scott