Yuri Marx · Mar 21, 2023 go to post

The value into Login Page field is right, the problem was CSPSystem permission

Yuri Marx · Mar 20, 2023 go to post

I read this documentation and not detail how to fill the Login Page field

Yuri Marx · Mar 19, 2023 go to post

Nothing, log empty. Very difficult to set up custom login, I've given up, thanks

Yuri Marx · Mar 18, 2023 go to post

What is the value to Login Page field for this class: Class dc.login.GoogleLogin Extends %CSP.Login { ... }

Yuri Marx · Feb 23, 2023 go to post

Great, I love to write tutorials. The winner will get a badge on GM too?

Yuri Marx · Feb 10, 2023 go to post

Thanks for the nominations, I hope to contribute more and more for the best dev community of the world.

Yuri Marx · Feb 7, 2023 go to post

Many thanks to the community and DC staff, It is a pleasure share this prize with Cemper.

Yuri Marx · Jan 30, 2023 go to post

Thanks the nominations! About Robert Cemper, he is a diamond expert for me, his contribution and apps are fundamental and fantastic to my personal learning

Yuri Marx · Jan 29, 2023 go to post

Yes, In VSCode, Change to intersystemsdc/iris-community:2022.1.0.209.0-zpm and will work.

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