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

DGREGEEWS.m

Go to the documentation of this file.
  1. DGREGEEWS ;ALB/MCF - E&E Web Service ;9 September 2020 9:00 AM
  1. ;;5.3;Registration;**1027,1095**;Aug 13, 1993;Build 23
  1. ;
  1. ; Subscribed ICR:
  1. ; Reference to routine XOBWLIB in ICR #5421 - Public APIs for HWSC
  1. ; Reference to UNWIND^%ZTER in ICR #1621 - Standard Error Trapping
  1. ; Reference to Web Service File XOBW(18.02 in ICR #7190
  1. ; Reference to Web Server File XOBW(18.12 in ICR #7191
  1. ;
  1. ; SAC EXEMPTION 20210107-01 : Use of vendor specific code
  1. ;
  1. Q
  1. EN(DGKEY,DGREQNAM,DGENSTAT,DGWSHTOE,DGCOMP) ; Main entry point function call
  1. ; Input : DGKEY (Required) - patient full ICN with checksum -> ICN_"V"_CHECKSUM
  1. ; DGREQNAM (Required) - Requester name. Ex: "VistAData"
  1. ; Output: DGENSTAT (Pass by reference) - Contains the enrollment status. NULL = ICN is unknown to ES
  1. ; DGWSHTOE (Pass by reference) - Contains the "Do You Wish To Enroll?" value.
  1. ; DGCOMP (Pass by reference) - Contains the "COMPACT Act Eligible?" value.
  1. ; Return: DGRESP - the response in the format "N^Descriptive text".
  1. ; 1 - An enrollment status exists. Descriptive text=Enrollment Status
  1. ; 0 - No enrollment status exists OR Invalid ICN OR Network error.
  1. ;
  1. N DGEEOBJ,DGSUMMARY,DGSTCODE,DGRESP
  1. N $ETRAP,$ESTACK
  1. ; set error trap
  1. S $ETRAP="DO ERR^DGREGEEWS"
  1. S (DGENSTAT,DGWSHTOE,DGSTCODE,DGCOMP)=""
  1. S DGRESP="0^Unknown error"
  1. D GETSUMM(.DGSUMMARY)
  1. I '$GET(DGSUMMARY) Q DGRESP
  1. D RESULTS(.DGSUMMARY)
  1. Q DGRESP
  1. ;
  1. GETSUMM(DGSUMMARY) ; Set up web service object through HWSC.
  1. ; Output: DGSUMMARY object
  1. I '$$FIND1^DIC(18.12,,"B","DG EE SUMMARY SERVER")!'$$FIND1^DIC(18.02,,"B","DG EE SUMMARY SERVICE") S DGRESP="0^Web services are not set up" Q
  1. S DGEEOBJ=$$GETPROXY^XOBWLIB("DG EE SUMMARY SERVICE","DG EE SUMMARY SERVER")
  1. S DGEEOBJ.Password=DGEEOBJ.HttpPassword ; set passwords to force creation of security headers
  1. S DGEEOBJ.HttpPassword=""
  1. S DGEEOBJ.Username=DGEEOBJ.HttpUsername
  1. S DGEEOBJ.HttpUsername=""
  1. ; If ICN is valid a DGSUMMARY object will be returned
  1. ; If ICN is invalid a 500 error msg will be returned with a <ZSOAP> error & gracefully exit via ERR tag.
  1. D DGEEOBJ.getEESummary(DGKEY,"",DGREQNAM,"",.DGSUMMARY) ; get summary data
  1. Q
  1. RESULTS(DGSUMMARY) ; get enrollment status and "do you wish to enroll value?"
  1. ; Input: DGSUMMARY object
  1. D STATCODE
  1. I $ISO(DGSUMMARY.enrollmentDeterminationInfo) D Q
  1. . S DGRESP="1^"_DGSTCODE_" Valid ICN and known to ES"
  1. . S DGENSTAT=DGSUMMARY.enrollmentDeterminationInfo.enrollmentStatus
  1. . S DGWSHTOE=DGSUMMARY.enrollmentDeterminationInfo.registrationInfo.doYouWishToEnroll
  1. . S DGCOMP=DGSUMMARY.enrollmentDeterminationInfo.compactActIndicator
  1. E D
  1. . S DGRESP="0^"_DGSTCODE_" Valid ICN but UNKNOWN to ES"
  1. Q
  1. STATCODE ; http response status code
  1. S DGSTCODE=DGEEOBJ.HttpResponse.StatusCode
  1. Q
  1. ERR ; error trapping code
  1. N $ETRAP,$ESTACK,DGERR,DGTEXT
  1. ; if there's an error in the error handler just quit.
  1. S $ETRAP="DO QUIT^DGREGEEWS"
  1. S DGERR=$$EOFAC^XOBWLIB()
  1. D STATCODE
  1. S DGTEXT="Error has been logged in error log"
  1. S DGTEXT=$S($ISO(DGEEOBJ.SoapFault):DGEEOBJ.SoapFault.faultstring,1:DGTEXT)
  1. S DGRESP="0^"_DGSTCODE_" "_DGTEXT
  1. ; if code is not 6248 PERSON_NOT_FOUND it is some other error. Log it.
  1. I DGERR.code'=6248 D ZTER^XOBWLIB(DGERR)
  1. S $ECODE=""
  1. D UNWIND^%ZTER
  1. Q
  1. QUIT ;
  1. D ZTER^XOBWLIB(DGERR)
  1. Q