Yuri Marx · Jan 3, 2023 go to post

Can you generate the debug log with these instructions?

Troubleshooting Debugger Issues

If you are experiencing issues using the debugger, please follow these steps before opening an issue on GitHub:

  1. Open a terminal on your server and zn to the namespace containing the class or routine you are debugging.
  2. Run the command Kill ^IRIS.Temp.Atelier("debug"), then Set ^IRIS.Temp.Atelier("debug") = 1 to turn on the Atelier API debug logging feature. If you are on Caché or Ensemble, the global is ^CacheTemp.ISC.Atelier("debug").
  3. In VS Code, start a debugging session using the configuration that produces the error.
  4. Once the error appears, copy the contents of the ^IRIS.Temp.Atelier("debug") global and add it to your GitHub issue.
  5. After you capture the log, run the command Kill ^IRIS.Temp.Atelier("debug"), then Set ^IRIS.Temp.Atelier("debug") = 0 to turn logging back off again.
Yuri Marx · Jan 2, 2023 go to post

Great year, in this year I will write more articles and learn a lot with you

Yuri Marx · Dec 20, 2022 go to post

The response is a string code only, so if we don't have error, the edge was sucessful, otherwise I try to suspend to try again after

Yuri Marx · Dec 20, 2022 go to post

Yes, because the Edge is usually remote, so I used but calling the remote Web Service:

1. Create the web service client from the WSDL http://<IP>:<PORT>/<NAMESPACE>/csp/healthshare/hsedge/HS.Gateway.HSWS.WebServices.cls?wsdl. (more details: https://docs.intersystems.com/hs20221/csp/docbook/DocBook.UI.Page.cls?K…)

1.1 To create the web service client classes do (https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…):

set r=##class(%SOAP.WSDL.Reader).%New() 
GSOAP>set url="http://<IP>:<PORT>/<NAMESPACE>/csp/healthshare/hsedge/HS.Gateway.HSWS.WebServices.cls?wsdl"
 
GSOAP>d r.Process(url, "targetpackagename")

2. Use the SOAP generated class to consume EPRSave():

Class package.NameOperation Extends Ens.BusinessOperation
{

Parameter ADAPTER = "EnsLib.SOAP.OutboundAdapter";
Parameter INVOCATION = "Queue";
Method SendSDA(pRequest As pack.WSReq, Output pResponse As pack.Resp) As %Status
{
  
  Set tSC = 1
  Set sda = ""
  Set pResponse = ##class(pack.Resp).%New() 

  Try {
    
    While 'pRequest.sda.AtEnd {
      Set sda = sda_pRequest.sda.ReadLine() 
    }
    
    Set request = ##class(hcd.ECRUpdateRequest).%New()
    Set request.UpdateECRDemographics = 1
    Set request.AllowFacilityAsAssigningAuthority = 0
    Set request.StreamContentType = "SDA3"
    Set request.ContentStream = sda
    Set client = ##class(hcd.HS.Gateway.HSWS.WebServicesSoap).%New()
    Do ##class(Ens.Util.Log).LogInfo($classname(),"SendSDA","Send SDA to: "_client.Location)
    Set client.SSLConfiguration = "HCD_SSL"
    Set cred = ##class(Ens.Config.Credentials).%OpenId("HS_Services")
    Set wsuser = cred.Username
    Set wspass = cred.Password  
    Do client.WSSecurityLogin(wsuser,wspass) 
    Do client.EPRSave(request, .response)
    Set pResponse.response = "OK"
    Set pResponse.response = "SDA sent"
  } Catch ex {
    Set tSC = 1
    Do ##class(Ens.Util.Log).LogError($classname(),"SendSDA",$System.Status.GetErrorText(%objlasterror))
    Set pResponse.response = "Not OK"
    Set pResponse.response = "Error while sending SDA. Details: "_$System.Status.GetErrorText(%objlasterror)
    Set ..SuspendMessage = 1
  }

  Return tSC
}

XData MessageMap
{
<MapItems>
  <MapItem MessageType="pack.WSReq">
    <Method>SendSDA</Method>
  </MapItem>
</MapItems>
}

}
Yuri Marx · Dec 10, 2022 go to post

For business scenarios will be very useful, for developers is better to use docs, learning, discord and community tools

Yuri Marx · Aug 16, 2022 go to post

Is it required use dtl, bpl and adapters to be considered an interoperability solution?

Yuri Marx · Aug 8, 2022 go to post

Many thanks Community, I ready to the next 100 articles and more 25 apps!