SDESMISSIONELG ;ALB/MGD,ANU,LAB - VISTA SCHEDULING RPCS GET MISSION ELIGIBILITY ; Nov 14, 2022
;;5.3;Scheduling;**814,815,818,820,826**;Aug 13, 1993;Build 18
;;Per VHA Directive 6402, this routine should not be modified
;
;External References
;-------------------
; Reference to $$GETS^DIQ,$$GETS1^DIQ in ICR #2056
; Reference to ^%DT in ICR #10003
; Reference to $$FIND1^DIC in ICR #2051
;
; Global References Supported
; ----------------- ----------------- ----------
; ^TMP($J SACC 2.3.2.5.1
;
Q
;
GETMISSIONELG(ELGRETURN,APPTREQIEN,PID,APPTREQTYP,SDEAS,APPTDATE,SDCLNIEN) ; Get Mission Eligibility
; This RPC gets User name, Keys and Scheduling Options for a given User.
; Input:
; ELGRETURN - [required] - Success or Error message
; APPTREQIEN - [required] - The IEN
; APPTREQTYP - [required] - APPOINTMENT REQUEST type
; PID - [required] - Patient Indicated Date
; SDEAS - [optional] - Enterprise Appointment Scheduling (EAS) Tracking Number associated to an appointment.
; APPTDATE - [required] - Date appointment is being made
; SDCLNIEN - [required] - Clinic IEN
;
;
N HASVLDERRORS,RETURN,HASFIELDS,ELGFIELDSARRAY,REQDATE,REQENDDT,SDAPPTAVAIL,SDGETCLAVL,VLDERRORS,SDSTOPCD,SDSERVICE
N SDPRIM,SDSTOPCDIEN,SDI,REQDATENET,REQENDDTNET
N SDCLRESIEN,PIDDATE
N SDSTOPCDTYPE
S (RETURN,VLDERRORS,ELGFIELDSARRAY,HASFIELDS,SDSTOPCDTYPE)=""
;
S HASVLDERRORS=$$VALIDATE(.VLDERRORS,APPTREQIEN,PID,APPTREQTYP,SDEAS,.SDAPPTAVAIL,.APPTDATE)
I HASVLDERRORS M RETURN=VLDERRORS
I 'HASVLDERRORS S HASFIELDS=$$GETMSNELG(.ELGFIELDSARRAY,REQDATE,REQENDDT,PIDDATE,.SDAPPTAVAIL,APPTDATE)
I HASFIELDS M RETURN=ELGFIELDSARRAY
;
D BUILDJSON(.ELGRETURN,.RETURN)
D CLEANUP
Q
;
VALIDATE(ERRORS,APPTREQIEN,PID,APPTREQTYP,SDEAS,SDAPPTAVAIL,APPTDATE) ; Validate Appointment Request IEN, Request Date, PID Date
N ERRORFLAG,SDP1,SDP2,SDP3,SDP4,SDSTRTDT,SDENDDT,SDSLOTS,SDSTOPTM,SDSTRTTM,SDTOTAL,II,SDCLNAME,SDERR
S (SDAPPTAVAIL,SDSERVICE)=""
;
; Appointment Request IEN
I APPTREQIEN="" S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,3) Q $D(ERRORFLAG)
;
; Appointment Request Type
I APPTREQTYP="" S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,60) Q $D(ERRORFLAG)
I "APPT,RTC,VETERAN,CONSULT,PROCEDURE,PTCSCH"'[APPTREQTYP S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,61) Q $D(ERRORFLAG)
I ((APPTREQTYP="APPT")!(APPTREQTYP="RTC")!(APPTREQTYP="VETERAN")) D
. I APPTREQIEN'="",'$D(^SDEC(409.85,+APPTREQIEN,0)) S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,4) Q
. S REQDATE=$$GET1^DIQ(409.85,APPTREQIEN,1,"I") ;Request Start Date
;
I ((APPTREQTYP="CONSULT")!(APPTREQTYP="PROCEDURE")) D
. I APPTREQIEN'="",'$D(^GMR(123,+APPTREQIEN,0)) S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,4) Q
. S REQDATE=$$GET1^DIQ(123,APPTREQIEN,3,"I") ;Request Start Date
;
I APPTREQTYP="PTCSCH" D
. I APPTREQIEN'="",'$D(^SD(403.5,+APPTREQIEN,0)) S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,4) Q
. S REQDATE=$$GET1^DIQ(403.5,APPTREQIEN,7.5,"I") ;Request Start Date
;
I $G(ERRORFLAG)=1 Q $D(ERRORFLAG)
I $G(SDCLNIEN)="" S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,18) Q $D(ERRORFLAG)
I +$G(SDCLNIEN)>0 D
. S SDCLNAME=$$GET1^DIQ(44,SDCLNIEN_",",.01,"I") ;retrieve the clinic name
. I SDCLNAME="" S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,80) Q
. S SDCLRESIEN=$$FIND1^DIC(409.831,"","X",SDCLNAME,"","","SDERR") ;retrieve the resource IEN for the clinic
. I $D(SDERR) S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,70) Q
I $G(SDCLRESIEN)="" S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,70) Q $D(ERRORFLAG)
I $G(ERRORFLAG)=1 Q $D(ERRORFLAG)
I $G(REQDATE)="" S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,157) Q $D(ERRORFLAG)
S SDSTOPCD=$$GET1^DIQ(44,SDCLNIEN,8,"I") ;Stop code ien
I $G(SDSTOPCD)'="" S SDSTOPCD=$$GET1^DIQ(40.7,SDSTOPCD,1,"I") ;Stop code
I $G(SDSTOPCD)="" S SDSTOPCD=0
;
; Patient Indication Date
S PID=$G(PID,"")
I PID="" S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,159) Q $D(ERRORFLAG)
S PIDDATE=$$ISOTFM^SDAMUTDT(PID,$G(SDCLNIEN))
I PIDDATE=-1 S PIDDATE="",ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,160) Q $D(ERRORFLAG)
;
;Appointment Date
S APPTDATE=$G(APPTDATE)
I APPTDATE="" S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,212) Q $D(ERRORFLAG)
S APPTDATE=$$ISOTFM^SDAMUTDT(APPTDATE,$G(SDCLNIEN))
I APPTDATE=-1 S APPTDATE="",ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,213) Q $D(ERRORFLAG)
;
S SDPRIM="N"
S SDSTOPCDIEN=0
S SDSTOPCDIEN=$$FIND1^DIC(409.89,"","",SDSTOPCD,"C","","SDERR")
I SDSTOPCDIEN D
. S SDSTOPCDTYPE=$$GET1^DIQ(409.89,SDSTOPCDIEN,2,"I")
. I ((SDSTOPCDTYPE="P")!(SDSTOPCDTYPE="M")) S SDPRIM="Y"
;
I SDPRIM="Y" S REQENDDT=$$FMADD^XLFDT(REQDATE,20) S SDSERVICE="M"
E S REQENDDT=$$FMADD^XLFDT(REQDATE,28)
;
S SDEAS=$G(SDEAS,"")
I $L(SDEAS) S SDEAS=$$EASVALIDATE^SDESUTIL(SDEAS)
I SDEAS=-1 S ERRORFLAG=1 D ERRLOG^SDESJSON(.ERRORS,142) Q $D(ERRORFLAG)
;
; Determine Appointment availability is within Request start date and Request end date
K SDTMPARY
S SDTMPARY=$NA(^TMP($J,"CLNCAVAIL"))
K @SDTMPARY
S REQDATENET=$$FMTONET^SDECDATE(REQDATE,"")
S REQENDDTNET=$$FMTONET^SDECDATE(REQENDDT,"")
D GETSLOTS^SDEC57(SDTMPARY,SDCLRESIEN,REQDATENET,REQENDDTNET)
;I $O(@SDTMPARY@(""))="" D ERRLOG^SDESJSON(.ERRORS,126) S ERRORFLAG=1 Q $D(ERRORFLAG)
I $O(@SDTMPARY@(""))="" Q $D(ERRORFLAG)
S SDTOTAL=@SDTMPARY@("CNT")
F II=1:1:SDTOTAL D
. S SDP1=$P(@SDTMPARY@(II),U,2) ;start date
. S SDP2=$P(@SDTMPARY@(II),U,3) ;end date
. S SDP3=+$P(@SDTMPARY@(II),U,4) ;open slots available
. S SDP4=$P(@SDTMPARY@(II),U,5) ;access type (1=available, 2=not available, 3=cancelled)
. ;
. S SDSTRTDT=$$FMTISO^SDAMUTDT($P(SDP1,".")) ;start date - remove the time
. S SDSTRTTM=$E($P(SDP1_"0000",".",2),1,4) ;start time
. S SDSTOPTM=$E($P(SDP2_"0000",".",2),1,4) ;stop time
. S SDSLOTS=$P(@SDTMPARY@(II),U,4)
. S SDSLOTS=$S(SDSLOTS=" ":"",1:SDSLOTS)
. S SDSLOTS=$S(SDP4=2:"",SDP4=3:"X",1:SDSLOTS)
. I SDSLOTS>0 S SDAPPTAVAIL="Y"
. S SDGETCLAVL($J,"SDESCLINICAVAIL",II)=SDSTRTDT_U_SDSTRTTM_U_SDSTOPTM_U_SDSLOTS
K @SDTMPARY
Q $D(ERRORFLAG)
;
GETMSNELG(ELGARRAY,REQDATE,REQENDDT,PIDDATE,SDAPPTAVAIL,APPTDATE) ; GET Eligibility
N HASDATA
S ELGARRAY("MissionEligibility","Code")="0"
S ELGARRAY("MissionEligibility","Message")="Not Eligible-"_$S(SDSERVICE="M":"Primary Care or Mental Health",1:"Special Care")
I APPTDATE>REQENDDT D
.I (SDAPPTAVAIL="") D
..I ((PIDDATE>=REQDATE)&(PIDDATE<=REQENDDT)) D
...S ELGARRAY("MissionEligibility","Code")="1"
...S ELGARRAY("MissionEligibility","Message")="Eligible-"_$S(SDSERVICE="M":"Primary Care or Mental Health",1:"Special Care")
S HASDATA=($D(ELGARRAY)>1)
Q HASDATA
;
BUILDJSON(JSONRETURN,INPUT) ; Build JSON format
S JSONERROR=""
D ENCODE^XLFJSON("INPUT","JSONRETURN","JSONERROR")
Q
;
CLEANUP ; Cleanup
K HASVLDERRORS,RETURN,HASFIELDS,ELGFIELDSARRAY,REQENDDT,SDAPPTAVAIL,SDGETCLAVL,SDSTOPCD,SDTMPARY
K ERRORFLAG
K HASDATA
K JSONERROR
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSDESMISSIONELG 6961 printed Jan 19, 2023@22:18:04 Page 2
SDESMISSIONELG ;ALB/MGD,ANU,LAB - VISTA SCHEDULING RPCS GET MISSION ELIGIBILITY ; Nov 14, 2022
+1 ;;5.3;Scheduling;**814,815,818,820,826**;Aug 13, 1993;Build 18
+2 ;;Per VHA Directive 6402, this routine should not be modified
+3 ;
+4 ;External References
+5 ;-------------------
+6 ; Reference to $$GETS^DIQ,$$GETS1^DIQ in ICR #2056
+7 ; Reference to ^%DT in ICR #10003
+8 ; Reference to $$FIND1^DIC in ICR #2051
+9 ;
+10 ; Global References Supported
+11 ; ----------------- ----------------- ----------
+12 ; ^TMP($J SACC 2.3.2.5.1
+13 ;
+14 QUIT
+15 ;
GETMISSIONELG(ELGRETURN,APPTREQIEN,PID,APPTREQTYP,SDEAS,APPTDATE,SDCLNIEN) ; Get Mission Eligibility
+1 ; This RPC gets User name, Keys and Scheduling Options for a given User.
+2 ; Input:
+3 ; ELGRETURN - [required] - Success or Error message
+4 ; APPTREQIEN - [required] - The IEN
+5 ; APPTREQTYP - [required] - APPOINTMENT REQUEST type
+6 ; PID - [required] - Patient Indicated Date
+7 ; SDEAS - [optional] - Enterprise Appointment Scheduling (EAS) Tracking Number associated to an appointment.
+8 ; APPTDATE - [required] - Date appointment is being made
+9 ; SDCLNIEN - [required] - Clinic IEN
+10 ;
+11 ;
+12 NEW HASVLDERRORS,RETURN,HASFIELDS,ELGFIELDSARRAY,REQDATE,REQENDDT,SDAPPTAVAIL,SDGETCLAVL,VLDERRORS,SDSTOPCD,SDSERVICE
+13 NEW SDPRIM,SDSTOPCDIEN,SDI,REQDATENET,REQENDDTNET
+14 NEW SDCLRESIEN,PIDDATE
+15 NEW SDSTOPCDTYPE
+16 SET (RETURN,VLDERRORS,ELGFIELDSARRAY,HASFIELDS,SDSTOPCDTYPE)=""
+17 ;
+18 SET HASVLDERRORS=$$VALIDATE(.VLDERRORS,APPTREQIEN,PID,APPTREQTYP,SDEAS,.SDAPPTAVAIL,.APPTDATE)
+19 IF HASVLDERRORS
MERGE RETURN=VLDERRORS
+20 IF 'HASVLDERRORS
SET HASFIELDS=$$GETMSNELG(.ELGFIELDSARRAY,REQDATE,REQENDDT,PIDDATE,.SDAPPTAVAIL,APPTDATE)
+21 IF HASFIELDS
MERGE RETURN=ELGFIELDSARRAY
+22 ;
+23 DO BUILDJSON(.ELGRETURN,.RETURN)
+24 DO CLEANUP
+25 QUIT
+26 ;
VALIDATE(ERRORS,APPTREQIEN,PID,APPTREQTYP,SDEAS,SDAPPTAVAIL,APPTDATE) ; Validate Appointment Request IEN, Request Date, PID Date
+1 NEW ERRORFLAG,SDP1,SDP2,SDP3,SDP4,SDSTRTDT,SDENDDT,SDSLOTS,SDSTOPTM,SDSTRTTM,SDTOTAL,II,SDCLNAME,SDERR
+2 SET (SDAPPTAVAIL,SDSERVICE)=""
+3 ;
+4 ; Appointment Request IEN
+5 IF APPTREQIEN=""
SET ERRORFLAG=1
DO ERRLOG^SDESJSON(.ERRORS,3)
QUIT $DATA(ERRORFLAG)
+6 ;
+7 ; Appointment Request Type
+8 IF APPTREQTYP=""
SET ERRORFLAG=1
DO ERRLOG^SDESJSON(.ERRORS,60)
QUIT $DATA(ERRORFLAG)
+9 IF "APPT,RTC,VETERAN,CONSULT,PROCEDURE,PTCSCH"'[APPTREQTYP
SET ERRORFLAG=1
DO ERRLOG^SDESJSON(.ERRORS,61)
QUIT $DATA(ERRORFLAG)
+10 IF ((APPTREQTYP="APPT")!(APPTREQTYP="RTC")!(APPTREQTYP="VETERAN"))
Begin DoDot:1
+11 IF APPTREQIEN'=""
IF '$DATA(^SDEC(409.85,+APPTREQIEN,0))
SET ERRORFLAG=1
DO ERRLOG^SDESJSON(.ERRORS,4)
QUIT
+12 ;Request Start Date
SET REQDATE=$$GET1^DIQ(409.85,APPTREQIEN,1,"I")
End DoDot:1
+13 ;
+14 IF ((APPTREQTYP="CONSULT")!(APPTREQTYP="PROCEDURE"))
Begin DoDot:1
+15 IF APPTREQIEN'=""
IF '$DATA(^GMR(123,+APPTREQIEN,0))
SET ERRORFLAG=1
DO ERRLOG^SDESJSON(.ERRORS,4)
QUIT
+16 ;Request Start Date
SET REQDATE=$$GET1^DIQ(123,APPTREQIEN,3,"I")
End DoDot:1
+17 ;
+18 IF APPTREQTYP="PTCSCH"
Begin DoDot:1
+19 IF APPTREQIEN'=""
IF '$DATA(^SD(403.5,+APPTREQIEN,0))
SET ERRORFLAG=1
DO ERRLOG^SDESJSON(.ERRORS,4)
QUIT
+20 ;Request Start Date
SET REQDATE=$$GET1^DIQ(403.5,APPTREQIEN,7.5,"I")
End DoDot:1
+21 ;
+22 IF $GET(ERRORFLAG)=1
QUIT $DATA(ERRORFLAG)
+23 IF $GET(SDCLNIEN)=""
SET ERRORFLAG=1
DO ERRLOG^SDESJSON(.ERRORS,18)
QUIT $DATA(ERRORFLAG)
+24 IF +$GET(SDCLNIEN)>0
Begin DoDot:1
+25 ;retrieve the clinic name
SET SDCLNAME=$$GET1^DIQ(44,SDCLNIEN_",",.01,"I")
+26 IF SDCLNAME=""
SET ERRORFLAG=1
DO ERRLOG^SDESJSON(.ERRORS,80)
QUIT
+27 ;retrieve the resource IEN for the clinic
SET SDCLRESIEN=$$FIND1^DIC(409.831,"","X",SDCLNAME,"","","SDERR")
+28 IF $DATA(SDERR)
SET ERRORFLAG=1
DO ERRLOG^SDESJSON(.ERRORS,70)
QUIT
End DoDot:1
+29 IF $GET(SDCLRESIEN)=""
SET ERRORFLAG=1
DO ERRLOG^SDESJSON(.ERRORS,70)
QUIT $DATA(ERRORFLAG)
+30 IF $GET(ERRORFLAG)=1
QUIT $DATA(ERRORFLAG)
+31 IF $GET(REQDATE)=""
SET ERRORFLAG=1
DO ERRLOG^SDESJSON(.ERRORS,157)
QUIT $DATA(ERRORFLAG)
+32 ;Stop code ien
SET SDSTOPCD=$$GET1^DIQ(44,SDCLNIEN,8,"I")
+33 ;Stop code
IF $GET(SDSTOPCD)'=""
SET SDSTOPCD=$$GET1^DIQ(40.7,SDSTOPCD,1,"I")
+34 IF $GET(SDSTOPCD)=""
SET SDSTOPCD=0
+35 ;
+36 ; Patient Indication Date
+37 SET PID=$GET(PID,"")
+38 IF PID=""
SET ERRORFLAG=1
DO ERRLOG^SDESJSON(.ERRORS,159)
QUIT $DATA(ERRORFLAG)
+39 SET PIDDATE=$$ISOTFM^SDAMUTDT(PID,$GET(SDCLNIEN))
+40 IF PIDDATE=-1
SET PIDDATE=""
SET ERRORFLAG=1
DO ERRLOG^SDESJSON(.ERRORS,160)
QUIT $DATA(ERRORFLAG)
+41 ;
+42 ;Appointment Date
+43 SET APPTDATE=$GET(APPTDATE)
+44 IF APPTDATE=""
SET ERRORFLAG=1
DO ERRLOG^SDESJSON(.ERRORS,212)
QUIT $DATA(ERRORFLAG)
+45 SET APPTDATE=$$ISOTFM^SDAMUTDT(APPTDATE,$GET(SDCLNIEN))
+46 IF APPTDATE=-1
SET APPTDATE=""
SET ERRORFLAG=1
DO ERRLOG^SDESJSON(.ERRORS,213)
QUIT $DATA(ERRORFLAG)
+47 ;
+48 SET SDPRIM="N"
+49 SET SDSTOPCDIEN=0
+50 SET SDSTOPCDIEN=$$FIND1^DIC(409.89,"","",SDSTOPCD,"C","","SDERR")
+51 IF SDSTOPCDIEN
Begin DoDot:1
+52 SET SDSTOPCDTYPE=$$GET1^DIQ(409.89,SDSTOPCDIEN,2,"I")
+53 IF ((SDSTOPCDTYPE="P")!(SDSTOPCDTYPE="M"))
SET SDPRIM="Y"
End DoDot:1
+54 ;
+55 IF SDPRIM="Y"
SET REQENDDT=$$FMADD^XLFDT(REQDATE,20)
SET SDSERVICE="M"
+56 IF '$TEST
SET REQENDDT=$$FMADD^XLFDT(REQDATE,28)
+57 ;
+58 SET SDEAS=$GET(SDEAS,"")
+59 IF $LENGTH(SDEAS)
SET SDEAS=$$EASVALIDATE^SDESUTIL(SDEAS)
+60 IF SDEAS=-1
SET ERRORFLAG=1
DO ERRLOG^SDESJSON(.ERRORS,142)
QUIT $DATA(ERRORFLAG)
+61 ;
+62 ; Determine Appointment availability is within Request start date and Request end date
+63 KILL SDTMPARY
+64 SET SDTMPARY=$NAME(^TMP($JOB,"CLNCAVAIL"))
+65 KILL @SDTMPARY
+66 SET REQDATENET=$$FMTONET^SDECDATE(REQDATE,"")
+67 SET REQENDDTNET=$$FMTONET^SDECDATE(REQENDDT,"")
+68 DO GETSLOTS^SDEC57(SDTMPARY,SDCLRESIEN,REQDATENET,REQENDDTNET)
+69 ;I $O(@SDTMPARY@(""))="" D ERRLOG^SDESJSON(.ERRORS,126) S ERRORFLAG=1 Q $D(ERRORFLAG)
+70 IF $ORDER(@SDTMPARY@(""))=""
QUIT $DATA(ERRORFLAG)
+71 SET SDTOTAL=@SDTMPARY@("CNT")
+72 FOR II=1:1:SDTOTAL
Begin DoDot:1
+73 ;start date
SET SDP1=$PIECE(@SDTMPARY@(II),U,2)
+74 ;end date
SET SDP2=$PIECE(@SDTMPARY@(II),U,3)
+75 ;open slots available
SET SDP3=+$PIECE(@SDTMPARY@(II),U,4)
+76 ;access type (1=available, 2=not available, 3=cancelled)
SET SDP4=$PIECE(@SDTMPARY@(II),U,5)
+77 ;
+78 ;start date - remove the time
SET SDSTRTDT=$$FMTISO^SDAMUTDT($PIECE(SDP1,"."))
+79 ;start time
SET SDSTRTTM=$EXTRACT($PIECE(SDP1_"0000",".",2),1,4)
+80 ;stop time
SET SDSTOPTM=$EXTRACT($PIECE(SDP2_"0000",".",2),1,4)
+81 SET SDSLOTS=$PIECE(@SDTMPARY@(II),U,4)
+82 SET SDSLOTS=$SELECT(SDSLOTS=" ":"",1:SDSLOTS)
+83 SET SDSLOTS=$SELECT(SDP4=2:"",SDP4=3:"X",1:SDSLOTS)
+84 IF SDSLOTS>0
SET SDAPPTAVAIL="Y"
+85 SET SDGETCLAVL($JOB,"SDESCLINICAVAIL",II)=SDSTRTDT_U_SDSTRTTM_U_SDSTOPTM_U_SDSLOTS
End DoDot:1
+86 KILL @SDTMPARY
+87 QUIT $DATA(ERRORFLAG)
+88 ;
GETMSNELG(ELGARRAY,REQDATE,REQENDDT,PIDDATE,SDAPPTAVAIL,APPTDATE) ; GET Eligibility
+1 NEW HASDATA
+2 SET ELGARRAY("MissionEligibility","Code")="0"
+3 SET ELGARRAY("MissionEligibility","Message")="Not Eligible-"_$SELECT(SDSERVICE="M":"Primary Care or Mental Health",1:"Special Care")
+4 IF APPTDATE>REQENDDT
Begin DoDot:1
+5 IF (SDAPPTAVAIL="")
Begin DoDot:2
+6 IF ((PIDDATE>=REQDATE)&(PIDDATE<=REQENDDT))
Begin DoDot:3
+7 SET ELGARRAY("MissionEligibility","Code")="1"
+8 SET ELGARRAY("MissionEligibility","Message")="Eligible-"_$SELECT(SDSERVICE="M":"Primary Care or Mental Health",1:"Special Care")
End DoDot:3
End DoDot:2
End DoDot:1
+9 SET HASDATA=($DATA(ELGARRAY)>1)
+10 QUIT HASDATA
+11 ;
BUILDJSON(JSONRETURN,INPUT) ; Build JSON format
+1 SET JSONERROR=""
+2 DO ENCODE^XLFJSON("INPUT","JSONRETURN","JSONERROR")
+3 QUIT
+4 ;
CLEANUP ; Cleanup
+1 KILL HASVLDERRORS,RETURN,HASFIELDS,ELGFIELDSARRAY,REQENDDT,SDAPPTAVAIL,SDGETCLAVL,SDSTOPCD,SDTMPARY
+2 KILL ERRORFLAG
+3 KILL HASDATA
+4 KILL JSONERROR
+5 QUIT