Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ONCWEB1

ONCWEB1.m

Go to the documentation of this file.
  1. ONCWEB1 ;ALBANY OIFO/RVD - VACCR WEB SERVICE ;Nov 4, 2022@14:22:22
  1. ;;2.2;ONCOLOGY;**16,19,20**;Aug 1,2022;Build 5
  1. ;
  1. ; SAC EXEMPTION 202408071458-03 : non-ANSI standard M code
  1. ;
  1. Q
  1. ;
  1. ; EDITS CLOUD SERVER CALLS
  1. ;
  1. T3 ;Edits call to HWSC
  1. N RESPONSE,ONCHR,ONCSYS,ONCTMP S (ONCTMP,RESPONSE)=""
  1. S ONCSYS=$$PROD^XUPROD() ;1=PROD, 0=PRE=PROD
  1. S ONCHR=$NA(^TMP($J,"ONCXML"))
  1. S:'$D(ONCWEB) ONCWEB="ONCO WEB SERVER"
  1. S:'$D(ONCSERV) ONCSERV="ONCO VACCR WEB SERVICE"
  1. S TIME=$$HTE^XLFDT($H,7)
  1. S TIME=$TR(TIME,"@","T")
  1. S SITE=+$P($$SITE^VASITE(),"^",3)
  1. S ONCHAND="OncoTrax Cloud XML Encryption"
  1. I $G(ONCEXEC)="P" W !," Calling Web Service..."
  1. ;globalName must be cleaned before a case set-up & deleted after done posting
  1. N globalName S globalName=$NA(^TMP("ONC",$J))
  1. S RESPONSE=$$PPOST3(ONCHAND,$G(ONCHR),globalName)
  1. I RESPONSE=0 S ONCTMP=^TMP($JOB,"OUT","EXCEPTION")
  1. ;RESPONSE = server message back
  1. Q
  1. PPOST3(ONCHAND,XML,globalName) ;POST request
  1. ; @DESC Sends an HTTP request to SERVER as a POST or GET
  1. ; @ONCHAND Handle to XML document
  1. ; @XML XML request as string
  1. ; @globalName the name of global to use
  1. ; @RESPONSE A handle to response XML document
  1. ; 1 for success, 0 for failure
  1. N ONC,ONCERR,$ETRAP,$ESTACK,ONCFERR
  1. S:'$D(ONCWEB) ONCWEB="ONCO WEB SERVER"
  1. S:'$D(ONCSERV) ONCSERV="ONCO VACCR WEB SERVICE"
  1. S ONC("Ocp-Apim-Subscription-Key")="d27e1428f71e47239327d7e77e1439c6"
  1. ; Set error trap
  1. S $ETRAP="D ERROR^ONCWEB1"
  1. S ONC("server")=ONCWEB
  1. S ONC("webserviceName")=ONCSERV
  1. ;
  1. K ^TMP($JOB,"OUT","EXCEPTION")
  1. ; Get instance of client REST request object
  1. ;
  1. S ONC("restObject")=$$GETREST^XOBWLIB(ONC("webserviceName"),ONC("server"))
  1. ;W !,"REST OBJECT= ",ONC("restObject")
  1. I $DATA(^TMP($JOB,"OUT","EXCEPTION"))>0 Q 0
  1. ;
  1. N xmlString S xmlString=""
  1. N XMLQUIT S XMLQUIT="^TMP(""ONC"","_$J
  1. F D Q:globalName'[XMLQUIT
  1. . S xmlString=xmlString_$G(@globalName,"")
  1. . S globalName=$Q(@globalName)
  1. D ONC("restObject").EntityBody.Write(xmlString)
  1. ;
  1. I $DATA(^TMP($JOB,"OUT","EXCEPTION"))>0 Q 0
  1. ; Execute HTTP Post method ($$POST^XOBWLIB) or Get method ($$GET^XOBWLIB)
  1. I $G(ONCEXEC)="G" D
  1. .;S:ONCSYS=0 ONC("path")="/development1/api/RunEdit/GetVersion"
  1. .S:ONCSYS=0 ONC("path")="/ppd/api/RunEdit/GetVersion"
  1. .;S:ONCSYS=1 ONC("path")="/development1/api/RunEdit/GetVersion"
  1. .S:ONCSYS=1 ONC("path")="/prda/api/RunEdit/GetVersion"
  1. .S ONC("Content-Type")="application/json"
  1. .S ONC("restObject").ContentType="application/json"
  1. .S ONC("postResult")=$$GET^XOBWLIB(ONC("restObject"),ONC("path"),.ONCERR)
  1. I $G(ONCEXEC)="P" D
  1. .;S:ONCSYS=0 ONC("path")="/development1/api/RunEdit/VaccrProcessCaseFile"
  1. .S:ONCSYS=0 ONC("path")="/ppd/api/RunEdit/VaccrProcessCaseFile"
  1. .;S:ONCSYS=1 ONC("path")="/development1/api/RunEdit/VaccrProcessCaseFile"
  1. .S:ONCSYS=1 ONC("path")="/prda/api/RunEdit/VaccrProcessCaseFile"
  1. .S ONC("Content-Type")="application/xml"
  1. .S ONC("restObject").ContentType="application/xml"
  1. .S ONC("postResult")=$$POST^XOBWLIB(ONC("restObject"),ONC("path"),.ONCERR)
  1. K ONCEXEC
  1. ;W !,"Post method...",!,"ERROR...= ",$G(ONCERR, "NONE")
  1. ;
  1. N stream s stream=##class(%Stream.TmpCharacter).%New()
  1. d stream.CopyFrom(ONC("restObject").HttpResponse.Data)
  1. ;
  1. n result s result=""
  1. N ONC1 S ONC1=1
  1. f q:stream.AtEnd=1 d
  1. . S ^TMP("ONCSED01R",$J,ONC1)=stream.ReadLine()
  1. . S ONC1=ONC1+1
  1. I $DATA(^TMP($JOB,"OUT","EXCEPTION"))>0 Q 0
  1. D:'ONC("postResult")
  1. . S ^TMP($JOB,"OUT","EXCEPTION")="Unable to make http request."
  1. . S ONC("result")=0
  1. . Q
  1. Q result
  1. ;
  1. TCS ;Collaborative Stage call to HWSC
  1. N RESPONSE,ONCHR,ONCSYS,ONCTMP S (ONCTMP,RESPONSE)=""
  1. S ONCSYS=$$PROD^XUPROD() ;1=PROD, 0=PRE=PROD
  1. S ONCHR=$NA(^TMP($J,"ONCXML"))
  1. S:'$D(ONCWEB) ONCWEB="ONCO WEB SERVER"
  1. S:'$D(ONCSERV) ONCSERV="ONCO VACCR WEB SERVICE"
  1. S TIME=$$HTE^XLFDT($H,7)
  1. S TIME=$TR(TIME,"@","T")
  1. S SITE=+$P($$SITE^VASITE(),"^",3)
  1. S ONCHAND="OncoTrax Calculate Collaborative Stage Cloud Server"
  1. W !," Call Web Service to calculate CS..."
  1. ;globalName must be cleaned before a case set-up & deleted after done posting
  1. N globalName S globalName=$NA(^TMP("ONCINPUT",$J))
  1. S RESPONSE=$$PPOSTCS(ONCHAND,$G(ONCHR),globalName)
  1. I RESPONSE=0 S ONCTMP=^TMP($JOB,"OUT","EXCEPTION")
  1. ;RESPONSE = server message back
  1. Q
  1. PPOSTCS(ONCHAND,XML,globalName) ;POST request
  1. ; @DESC Sends an HTTP request to SERVER as a POST or GET
  1. ; @ONCHAND Handle to XML document
  1. ; @XML XML request as string
  1. ; @globalName the name of global to use
  1. ; @RESPONSE A handle to response XML document
  1. ; 1 for success, 0 for failure
  1. N ONC,ONCERR,$ETRAP,$ESTACK,ONCFERR
  1. S:'$D(ONCWEB) ONCWEB="ONCO WEB SERVER"
  1. S:'$D(ONCSERV) ONCSERV="ONCO VACCR WEB SERVICE"
  1. ; Set error trap
  1. S $ETRAP="D ERROR^ONCWEB1"
  1. S ONC("server")=ONCWEB
  1. S ONC("webserviceName")=ONCSERV
  1. ;
  1. K ^TMP($JOB,"OUT","EXCEPTION")
  1. ; Get instance of client REST request object
  1. ;
  1. S ONC("restObject")=$$GETREST^XOBWLIB(ONC("webserviceName"),ONC("server"))
  1. ;W !,"REST OBJECT= ",ONC("restObject")
  1. I $DATA(^TMP($JOB,"OUT","EXCEPTION"))>0 Q 0
  1. ;
  1. N xmlString S xmlString=""
  1. N XMLQUIT S XMLQUIT="^TMP(""ONCINPUT"","_$J
  1. F D Q:globalName'[XMLQUIT
  1. . S xmlString=xmlString_$G(@globalName,"")
  1. . S globalName=$Q(@globalName)
  1. D ONC("restObject").EntityBody.Write(xmlString)
  1. ;
  1. I $DATA(^TMP($JOB,"OUT","EXCEPTION"))>0 Q 0
  1. ; Execute HTTP Post method ($$POST^XOBWLIB) or Get method ($$GET^XOBWLIB)
  1. I $G(ONCEXEC)="G" D
  1. .;S:ONCSYS=0 ONC("path")="/development1/api/RunEdit/GetVersion"
  1. .S:ONCSYS=0 ONC("path")="/ppd/api/RunEdit/GetVersion"
  1. .;S:ONCSYS=1 ONC("path")="/development1/api/RunEdit/GetVersion"
  1. .S:ONCSYS=1 ONC("path")="/prda/api/RunEdit/GetVersion"
  1. .S ONC("Content-Type")="application/json"
  1. .S ONC("restObject").ContentType="application/json"
  1. .S ONC("postResult")=$$GET^XOBWLIB(ONC("restObject"),ONC("path"),.ONCERR)
  1. I $G(ONCEXEC)="P" D
  1. .;S:ONCSYS=0 ONC("path")="/development1/api/RunEdit/VaccrProcessCStageCalculate"
  1. .S:ONCSYS=0 ONC("path")="/ppd/api/RunEdit/VaccrProcessCStageCalculate"
  1. .;S:ONCSYS=1 ONC("path")="/development1/api/RunEdit/VaccrProcessCStageCalculate"
  1. .S:ONCSYS=1 ONC("path")="/prda/api/RunEdit/VaccrProcessCStageCalculate"
  1. .S ONC("Content-Type")="application/xml"
  1. .S ONC("restObject").ContentType="application/xml"
  1. .S ONC("postResult")=$$POST^XOBWLIB(ONC("restObject"),ONC("path"),.ONCERR)
  1. K ONCEXEC
  1. ;W !,"Post method...",!,"ERROR...= ",$G(ONCERR, "NONE")
  1. ;
  1. N stream s stream=##class(%Stream.TmpCharacter).%New()
  1. d stream.CopyFrom(ONC("restObject").HttpResponse.Data)
  1. ;
  1. n result s result=""
  1. N ONC1 S ONC1=1
  1. f q:stream.AtEnd=1 d
  1. . S ^TMP("ONCCSRSP",$J,ONC1)=stream.ReadLine()
  1. . S ONC1=ONC1+1
  1. I $DATA(^TMP($JOB,"OUT","EXCEPTION"))>0 Q 0
  1. D:'ONC("postResult")
  1. . S ^TMP($JOB,"OUT","EXCEPTION")="Unable to make http request."
  1. . S ONC("result")=0
  1. . Q
  1. Q result
  1. ;
  1. ;
  1. ERROR ;
  1. ; @DESC Handles error during request to DC SERVER via webservice.
  1. ; Depends on GLOBAL variable ONCERR to be set in previous call.
  1. ; @RETURNS Nothing. Value store in global.
  1. N ERRARRAY
  1. ; Get error object from Error Object Factory
  1. I $GET(ONCERR)="" SET ONCERR=$$EOFAC^XOBWLIB()
  1. ; Store the error object in the error array
  1. D ERR2ARR^XOBWLIB(ONCERR,.ERRARRAY)
  1. ; Parse out the error text and store in global
  1. S ^TMP($JOB,"OUT","EXCEPTION")=$$GETTEXT(.ERRARRAY)
  1. ; Set ecode to empty to return to calling function
  1. S $ECODE=""
  1. Q
  1. ;
  1. GETTEXT(ERRARRAY) ;
  1. ; @DESC Gets the error text from the array
  1. ; @ERRARRAY Error array stores error in format defined by web service product.
  1. ; @RETURNS Error info as a single string
  1. N ONC
  1. ; Loop through the text subscript of error array and concatenate
  1. S ONC("errorText")=""
  1. S ONC("I")=""
  1. F S ONC("I")=$ORDER(ERRARRAY("text",ONC("I"))) QUIT:ONC("I")="" D
  1. . SET ONC("errorText")=ONC("errorText")_ERRARRAY("text",ONC("I"))
  1. . Q
  1. Q ONC("errorText")