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

XUXTADAPI.m

Go to the documentation of this file.
XUXTADAPI ;SLC/JLA - Service/Section Edit API's ; NOV 20, 2024@12:30
 ;;8.0;KERNEL;**807**;Nov 20, 2024;Build 56;
 ;
 ;
 ; External API'S
 ;
 ; FileMan/ScreenMan API's
GETS(AFILE,AIENS,AFIELD,AFLAGS,ATROOT,AMROOT) D GETS^DIQ($G(AFILE),$G(AIENS),$G(AFIELD),$G(AFLAGS),$G(ATROOT),$G(AMROOT)) Q
LIST(AFILE,AIENS,AFIELD,AFLAGS,AMAX,AFROM,APART,AINDEX,ASCREEN,AIDENTIFIER,ATROOT,AMROOT) D LIST^DIC($G(AFILE),$G(AIENS),$G(AFIELD),$G(AFLAGS),$G(AMAX),$G(AFROM),$G(APART),$G(AINDEX),$G(ASCREEN),$G(AIDENTIFIER),$G(ATROOT),$G(AMROOT)) Q
 ;
 ;
 ; API's available to show data:
 ;   D SHOWASSI^XUXTADAPI()  - Show All Service/Sections IEN's
 ;   D SHOWASSIN^XUXTADAPI() - Show All Service/Sections IEN's=Name
 ;   D SHOWVSSCDCR^XUXTADAPI(AXUXTADSSIEN) 
 ;     Show Service/Section with IEN: AXUXTADSSIEN (current/most recent) Date Closed record
 ;   D SHOWVSSOCS^XUXTADAPI(AXUXTADSSIEN)
 ;     Show Service/Section with IEN: AXUXTADSSIEN current Open/Closed status
 ;   D SHOWVISSA^XUXTADAPI(AXUXTADSSIEN)
 ;     Show Is Service/Section with IEN: AXUXTADSSIEN Assigned
 ;
 ;
 ; Get All Service/Section's IEN's records Array
 ; 
 ;   AXUXTADSSIA  - An array to hold all Service/Section IEN records
 ;
 ; Returns AXUXTADSSIA populated with the IEN for each Service/Section
 ;
 ;
 ; ***** DIRECT ACCESS OF GLOBAL ^DIC(49 *****
 ;
 ; S XUXTADSSA="SSI" 
 ; W $$GASSI^XUXTADAPI(XUXTADSSA)
GASSI(AXUXTADSSIA) ;
 NEW XUXTADSSIA,XUXTADSSIEN,XUXTADRTNVAL,XUXTADSSFILE
 S XUXTADSSIA=$G(AXUXTADSSIA)
 I $L(XUXTADSSIA)'>0 D  G GASSIDN
 . S XUXTADRTNVAL="0^Results array parameter AXUXTADSSIA is not valid"
 K @XUXTADSSIA
 S XUXTADSSFILE=49 ; SERVICE/SECTION file #
 S (@XUXTADSSIA,XUXTADSSIEN)=0
 F  S XUXTADSSIEN=$O(^DIC(XUXTADSSFILE,XUXTADSSIEN)) Q:'XUXTADSSIEN  D
 . S @XUXTADSSIA=@XUXTADSSIA+1
 . S @XUXTADSSIA@(XUXTADSSIEN)=""
 S XUXTADRTNVAL=@XUXTADSSIA
GASSIDN ;
 Q XUXTADRTNVAL
 ;
 ;
 ; Get All Service/Section's IEN's records Array
 ; 
 ;   AXUXTADSSIA  - An array to hold all Service/Section IEN records
 ;
 ; Returns AXUXTADSSIA populated with the IEN for each Service/Section
 ;
 ;
 ; Uses Database Server API
 ;   LIST^DIC(file[,iens][,fields][,flags][,number][,[.]from][,[.]part][,index][,[.]screen][,identifier][,target_root][,msg_root])
 ;
 ; S XUXTADSSA="SSI" 
 ; W $$GASSIFM^XUXTADAPI(XUXTADSSA)
GASSIFM(AXUXTADSSIA) ;
 NEW XUXTADSSIA,XUXTADNODE,XUXTADRTNVAL
 NEW FILE,FIELDS,TROOT
 I '$D(VERBOSE) NEW VERBOSE S VERBOSE=0
 ;I VERBOSE W !,"GASSIFM^XUXTADAPI(",$G(AXUXTADSSIA),") Called"
 ;I VERBOSE W !,"Get All Service/Section's IEN's"
 S FILE=49,FIELDS="@",TROOT="GASSIFMFDA",XUXTADNODE=0
 S XUXTADSSIA=$G(AXUXTADSSIA)
 I $L(XUXTADSSIA)'>0 D  G GASSIFMDN
 . S XUXTADRTNVAL="0^Results array parameter AXUXTADSSIA is not valid"
 D LIST(FILE,,FIELDS,,,,,,,,TROOT)
 K @XUXTADSSIA
 S @XUXTADSSIA=0
 F  S XUXTADNODE=$O(@TROOT@("DILIST",2,XUXTADNODE)) Q:'XUXTADNODE  D
 . S @XUXTADSSIA=@XUXTADSSIA+1
 . S @XUXTADSSIA@(@TROOT@("DILIST",2,XUXTADNODE))=""
 S XUXTADRTNVAL=@XUXTADSSIA
GASSIFMDN ;
 ;I VERBOSE W !,"GASSIFM^XUXTADAPI Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADSSIA
 K @TROOT
 Q XUXTADRTNVAL
 ;
 ; 
 ; Show All Service/Sections IEN's
 ;
 ; D SHOWASSI^XUXTADAPI
SHOWASSI() ;
 N XUXTADAIA,XUXTADRTNVAL,XUXTADHEADER
 S XUXTADAIA="SHOWASSI"
 S XUXTADRTNVAL=$$GASSIFM(XUXTADAIA)
 S XUXTADHEADER="All Service/Section IEN's:"
 D SHOWA(XUXTADHEADER,XUXTADAIA)
 K @XUXTADAIA
 Q
 ;
 ;
 ; Get All Service/Section's IEN=Name records Array
 ; 
 ;   AXUXTADSSIA  - An array to hold all Service/Section IEN records
 ;
 ; Returns AXUXTADSSIA populated with the IEN and NAME for each Service/Section record
 ;
 ;
 ; ***** DIRECT ACCESS OF GLOBAL ^DIC(49 *****
 ;
 ; S XUXTADSSA="SSI" 
 ; W $$GASSIN^XUXTADAPI(XUXTADSSA)
GASSIN(AXUXTADSSIA) ;
 NEW XUXTADSSIA,XUXTADSSIEN,XUXTADRTNVAL,XUXTADSSFILE
 S XUXTADSSIA=$G(AXUXTADSSIA)
 I $L(XUXTADSSIA)'>0 D  G GASSINDN
 . S XUXTADRTNVAL="0^Results array parameter AXUXTADSSIA is not valid"
 K @XUXTADSSIA
 S XUXTADSSFILE=49 ; File number of SERVICE/SECTION file
 S (@XUXTADSSIA,XUXTADSSIEN)=0
 F  S XUXTADSSIEN=$O(^DIC(XUXTADSSFILE,XUXTADSSIEN)) Q:'XUXTADSSIEN  D
 . S @XUXTADSSIA=@XUXTADSSIA+1
 . S @XUXTADSSIA@(XUXTADSSIEN)=$P(^DIC(XUXTADSSFILE,XUXTADSSIEN,0),U)
 S XUXTADRTNVAL=@XUXTADSSIA
GASSINDN ;
 Q XUXTADRTNVAL
 ;
 ;
 ; Get All Service/Section's IEN=Name records Array
 ; 
 ;   AXUXTADSSIA  - An array to hold all Service/Section IEN/Name records
 ;
 ; Returns AXUXTADSSIA populated with the IEN and Name record for each Service/Section record
 ;
 ;
 ; Uses Database Server API
 ;   LIST^DIC(file[,iens][,fields][,flags][,number][,[.]from][,[.]part][,index][,[.]screen][,identifier][,target_root][,msg_root])
 ;
 ; S XUXTADSSA="SSI" 
 ; W $$GASSINFM^XUXTADAPI(XUXTADSSA)
GASSINFM(AXUXTADSSIA) ;
 NEW XUXTADSSIA,XUXTADNODE,XUXTADRTNVAL
 NEW FILE,FIELDS,TROOT
 I '$D(VERBOSE) NEW VERBOSE S VERBOSE=0
 ;I VERBOSE W !,"GASSINFM^XUXTADAPI(",$G(AXUXTADSSIA),") Called"
 ;I VERBOSE W !,"Get All Service/Section's IEN's=Name"
 S FILE=49,FIELDS=".01",TROOT="GASSINFMFDA",XUXTADNODE=0
 S XUXTADSSIA=$G(AXUXTADSSIA)
 I $L(XUXTADSSIA)'>0 D  G GASSINFMDN
 . S XUXTADRTNVAL="0^Results array parameter AXUXTADSSIA is not valid"
 D LIST(FILE,,FIELDS,,,,,,,,TROOT)
 K @XUXTADSSIA
 S @XUXTADSSIA=0
 F  S XUXTADNODE=$O(@TROOT@("DILIST",2,XUXTADNODE)) Q:'XUXTADNODE  D
 . S @XUXTADSSIA=@XUXTADSSIA+1
 . S @XUXTADSSIA@(@TROOT@("DILIST",2,XUXTADNODE))=@TROOT@("DILIST",1,XUXTADNODE)
 S XUXTADRTNVAL=@XUXTADSSIA
GASSINFMDN ;
 ;I VERBOSE W !,"GASSINFM^XUXTADAPI Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADSSIA
 K @TROOT
 Q XUXTADRTNVAL
 ;
 ; 
 ; Show All Service/Section's IEN=Name records
 ;
 ; D SHOWASSIN^XUXTADAPI
SHOWASSIN() ;
 N XUXTADSSINA,XUXTADRTNVAL,XUXTADHEADER
 S XUXTADSSINA="SHOWASSIN"
 S XUXTADRTNVAL=$$GASSINFM(XUXTADSSINA)
 S XUXTADHEADER="All Service/Section's IEN=Name records:"
 D SHOWA(XUXTADHEADER,XUXTADSSINA)
 K @XUXTADSSINA
 Q
 ;
 ;
 ; Get Service/Section's (current/most recent) Date Closed record
 ; 
 ;   AXUXTADSSIEN  - A Service/Section IEN
 ;
 ; Returns Service/Section's current/most recent Date Closed record 
 ; or nothing if no record exists yet
 ;
 ;
 ; ***** DIRECT ACCESS OF GLOBAL ^DIC(49 *****
 ;
 ; S XUXTADSSIEN=3 
 ; W $$GSSCDCR^XUXTADAPI(XUXTADSSIEN)
GSSCDCR(AXUXTADSSIEN) ;
 NEW XUXTADCDCR,XUXTADSSIEN,XUXTADNODE,XUXTADSSFILE,XUXTADDCNODE
 S XUXTADCDCR="",XUXTADNODE=""
 S XUXTADSSIEN=+$G(AXUXTADSSIEN)
 S XUXTADSSFILE=49 ; File number of SERVICE/SECTION file
 S XUXTADDCNODE=3  ; Date Closed node
 I (XUXTADSSIEN'>0)!('$D(^DIC(XUXTADSSFILE,XUXTADSSIEN))) D  G GSSCDCRDN
 . S XUXTADCDCR="0^Service/Section IEN "_XUXTADSSIEN_" is not valid"
 ; Read the last Date Closed Record (-1 reverse order)
 S XUXTADNODE=$O(^DIC(XUXTADSSFILE,XUXTADSSIEN,XUXTADDCNODE,XUXTADNODE),-1)
 I XUXTADNODE>0 S XUXTADCDCR=^(XUXTADNODE,0)
GSSCDCRDN ;
 Q XUXTADCDCR
 ;
 ;
 ; Get Service/Section's (current/most recent) Date Closed record
 ; 
 ;   AXUXTADSSIEN  - A Service/Section IEN
 ;
 ; Returns Service/Section's current/most recent Date Closed record 
 ; or nothing if no record exists yet
 ;
 ;
 ; Uses Database Server API
 ;   GETS^DIQ(file,iens,field[,flags],target_root[,msg_root])
 ;
 ; S XUXTADSSIEN=3 
 ; W $$GSSCDCRFM^XUXTADAPI(XUXTADSSIEN)
GSSCDCRFM(AXUXTADSSIEN) ;
 NEW XUXTADSSIEN,XUXTADSSIA,XUXTADCDCR,XUXTADNODE,XUXTADDCFLD,XUXTADDRFLD
 NEW FILE,IENS,FIELD,FLAGS,TROOT,SUBFILE
 I '$D(VERBOSE) NEW VERBOSE S VERBOSE=0
 ;I VERBOSE W !,"GSSCDCRFM^XUXTADAPI(",$G(AXUXTADSSIEN),") Called"
 ;I VERBOSE W !,"Get Service/Section's (current/most recent) Date Closed record"
 S XUXTADSSIEN=+$G(AXUXTADSSIEN),XUXTADSSIA="GSSCDCRFMSSI"
 S FILE=49,IENS=""_XUXTADSSIEN_",",FIELD="13*",FLAGS="I",TROOT="FMD"
 S SUBFILE=49.07,XUXTADCDCR="",XUXTADNODE="",XUXTADDCFLD=.01,XUXTADDRFLD=1
 ; Get All Service/Section IEN's
 D GASSIFM(XUXTADSSIA)
 ; Verify that the SS IEN passed in is valid and exists
 I (XUXTADSSIEN'>0)!('$D(@XUXTADSSIA@(XUXTADSSIEN))) D  G GSSCDCRFMDN
 . S XUXTADCDCR="0^Service/Section IEN "_XUXTADSSIEN_" is not valid"
 D GETS(FILE,IENS,FIELD,FLAGS,TROOT)
 ;I VERBOSE W ! ZW @TROOT
 ; Read the last Date Closed Record (-1 reverse order)
 S XUXTADNODE=$O(@TROOT@(SUBFILE,XUXTADNODE),-1)
 ;I VERBOSE W !,"XUXTADSSIEN: ",XUXTADSSIEN,", XUXTADNODE: ",XUXTADNODE,!
 I XUXTADNODE>0 S XUXTADCDCR=@TROOT@(SUBFILE,XUXTADNODE,XUXTADDCFLD,FLAGS)_U_@TROOT@(SUBFILE,XUXTADNODE,XUXTADDRFLD,FLAGS)
GSSCDCRFMDN ;
 ;I VERBOSE W !,"GSSCDCRFM^XUXTADAPI Exiting, Response: ",XUXTADCDCR
 K @XUXTADSSIA,@TROOT
 Q XUXTADCDCR
 ;
 ; 
 ; Show Service/Section's (current/most recent) Date Closed record
 ;
 ; S AXUXTADSSIEN=1048
 ; D SHOWVSSCDCR^XUXTADAPI(AXUXTADSSIEN)
SHOWVSSCDCR(AXUXTADSSIEN) ;
 N XUXTADRTNVAL,XUXTADHEADER
 S XUXTADRTNVAL=$$GSSCDCRFM(AXUXTADSSIEN)
 S XUXTADHEADER="Service/Section's (current/most recent) Date Closed record:"
 D SHOWV(XUXTADHEADER,XUXTADRTNVAL)
 Q
 ;
 ;
 ; Get Service/Section's current Open/Closed status
 ; 
 ;   AXUXTADSSIEN  - A Service/Section IEN
 ;
 ; Returns
 ;   0^Error message when an error occurs
 ;   1^Success message
 ;     1^Open
 ;     1^Closed
 ;
 ;
 ; ***** DIRECT ACCESS OF GLOBAL ^DIC(49 *****
 ;
 ; S XUXTADSSIEN=3 
 ; W $$GSSOCS^XUXTADAPI(XUXTADSSIEN)
GSSOCS(AXUXTADSSIEN) ;
 NEW XUXTADSSIEN,XUXTADSSOCS,XUXTADCDCR,XUXTADCDR,XUXTADSSFILE
 S XUXTADSSIEN=+$G(AXUXTADSSIEN),XUXTADSSOCS="1^Open"
 S XUXTADSSFILE=49 ; File number of SERVICE/SECTION file
 I (XUXTADSSIEN'>0)!('$D(^DIC(XUXTADSSFILE,XUXTADSSIEN))) D  G GSSOCSDN
 . S XUXTADSSOCS="0^Service/Section IEN "_XUXTADSSIEN_" is not valid"
 S XUXTADCDCR=$$GSSCDCR(XUXTADSSIEN)
 I $L(XUXTADCDCR)>0 D  G GSSOCSDN
 . S XUXTADCDR=$P(XUXTADCDCR,"^",2)
 . ; If there is no Re-opened date then the Service/Section is Closed
 . I $L(XUXTADCDR)=0 S XUXTADSSOCS="1^Closed"
GSSOCSDN ;
 Q XUXTADSSOCS
 ;
 ;
 ; Get Service/Section's current Open/Closed status
 ; 
 ;   AXUXTADSSIEN  - A Service/Section IEN
 ;
 ; Returns
 ;   0^Error message when an error occurs
 ;   1^Success message
 ;     1^Open
 ;     1^Closed
 ;
 ; S XUXTADSSIEN=3 
 ; W $$GSSOCSFM^XUXTADAPI(XUXTADSSIEN)
GSSOCSFM(AXUXTADSSIEN) ;
 NEW XUXTADSSIEN,XUXTADSSIA,XUXTADSSOCS,XUXTADCDCR,XUXTADCDR
 I '$D(VERBOSE) NEW VERBOSE S VERBOSE=0
 ;I VERBOSE W !,"GSSOCSFM^XUXTADAPI(",$G(AXUXTADSSIEN),") Called"
 ;I VERBOSE W !,"Get Service/Section's current Open/Closed status"
 S XUXTADSSIEN=+$G(AXUXTADSSIEN),XUXTADSSIA="GSSOCSFMSSI",XUXTADSSOCS="1^Open"
 ; Get All Service/Section IEN's
 D GASSIFM(XUXTADSSIA)
 ; Verify that the SS IEN passed in is valid and exists
 I (XUXTADSSIEN'>0)!('$D(@XUXTADSSIA@(XUXTADSSIEN))) D  G GSSOCSFMDN
 . S XUXTADSSOCS="0^Service/Section IEN "_XUXTADSSIEN_" is not valid"
 S XUXTADCDCR=$$GSSCDCRFM(XUXTADSSIEN)
 I $L(XUXTADCDCR)>0 D  G GSSOCSFMDN
 . S XUXTADCDR=$P(XUXTADCDCR,"^",2)
 . ; If there is no Re-opened date then the Service/Section is Closed
 . I $L(XUXTADCDR)=0 S XUXTADSSOCS="1^Closed"
GSSOCSFMDN ;
 ;I VERBOSE W !,"GSSOCSFM^XUXTADAPI Exiting, Response: ",XUXTADSSOCS
 K @XUXTADSSIA
 Q XUXTADSSOCS
 ;
 ; 
 ; Show Service/Section's current Open/Closed status
 ;
 ; S AXUXTADSSIEN=1048
 ; D SHOWVSSOCS^XUXTADAPI(AXUXTADSSIEN)
SHOWVSSOCS(AXUXTADSSIEN) ;
 N XUXTADRTNVAL,XUXTADHEADER
 S XUXTADRTNVAL=$$GSSOCSFM(AXUXTADSSIEN)
 S XUXTADHEADER="Service/Section's current Open/Closed status:"
 D SHOWV(XUXTADHEADER,$P(XUXTADRTNVAL,"^",2))
 Q
 ;
 ;
 ; Is Service/Section with IEN: AXUXTADSSIEN Assigned?
 ;
 ;   AXUXTADSSIEN  - A Service/Section IEN
 ;
 ; Returns
 ;   0^Error message when an error occurs
 ;   0
 ;   1
 ;
 ;
 ; ***** DIRECT ACCESS OF GLOBALS ^DIC(49 AND ^VA(200 *****
 ;
 ; S XUXTADSSIEN=1043 
 ; W $$ISSA^XUXTADAPI(XUXTADSSIEN)
ISSA(AXUXTADSSIEN) ;
 NEW XUXTADSSIEN,XUXTADRTNVAL,XUXTADSSFILE,XUXTADNPFILE
 S XUXTADSSIEN=+$G(AXUXTADSSIEN)
 S XUXTADSSFILE=49 ; File number of SERVICE/SECTION file
 S XUXTADNPFILE=200 ; File number of NEW PERSON file
 ; Make sure the Service/Section IEN passed in is > 0 and exists in the Service/Section File 49
 I (XUXTADSSIEN'>0)!('$D(^DIC(XUXTADSSFILE,XUXTADSSIEN))) D  G ISSADN
 . S XUXTADRTNVAL="0^Service/Section IEN "_XUXTADSSIEN_" is not valid"
 S XUXTADRTNVAL=$O(^VA(XUXTADNPFILE,"E",XUXTADSSIEN,0))
 I XUXTADRTNVAL="" S XUXTADRTNVAL=0
 E  S XUXTADRTNVAL=1
ISSADN ;
 Q XUXTADRTNVAL
 ;
 ;
 ; Is Service/Section with IEN: AXUXTADSSIEN Assigned?
 ;
 ;   AXUXTADSSIEN  - A Service/Section IEN
 ;
 ; Returns
 ;   0^Error message when an error occurs
 ;   0 Not Assigned
 ;   1 Assigned
 ;
 ; Uses Database Server (DBS) API
 ;   LIST^DIC(file[,iens][,fields][,flags][,number][,[.]from][,[.]part][,index][,[.]screen][,identifier][,target_root][,msg_root])
 ;
 ; S XUXTADSSIEN=1043 
 ; W $$ISSAFM^XUXTADAPI(XUXTADSSIEN)
ISSAFM(AXUXTADSSIEN) ;
 NEW XUXTADSSIEN,XUXTADSSIA,XUXTADRTNVAL
 NEW FILE,FIELD,FLAGS,MAX,FROM,PART,INDEX,TROOT
 I '$D(VERBOSE) NEW VERBOSE S VERBOSE=0
 ;I VERBOSE W !,"ISSAFM^XUXTADAPI(",$G(AXUXTADSSIEN),") Called"
 ;I VERBOSE W !,"Is Service/Section Assigned"
 S XUXTADSSIA="ISSAFMSSI",TROOT="ISSAFMFMD"
 K @XUXTADSSIA
 S XUXTADSSIEN=+$G(AXUXTADSSIEN),@XUXTADSSIA=0
 ; Get All Service/Section IEN's
 D GASSIFM(XUXTADSSIA)
 ; Verify that the SS IEN passed in is valid and exists
 I (XUXTADSSIEN'>0)!('$D(@XUXTADSSIA@(XUXTADSSIEN))) D  G ISSAFMDN
 . S XUXTADRTNVAL="0^Service/Section IEN "_XUXTADSSIEN_" is not valid"
 ; See if there is a User assigned from File 200 using the Service/Section index "E"
 S FILE=200,FIELD="@",FLAGS="I",MAX=1,FROM=XUXTADSSIEN-1,PART=XUXTADSSIEN,INDEX="E"
 K @TROOT
 D LIST(FILE,,FIELD,FLAGS,MAX,FROM,PART,INDEX,,,TROOT)
 S XUXTADRTNVAL=0
 I $D(@TROOT@("DILIST",0)) D
 . ;I VERBOSE W ! ZW @TROOT
 . S XUXTADRTNVAL=$P(@TROOT@("DILIST",0),U,1)=1
ISSAFMDN ;
 ;I VERBOSE W !,"ISSAFM^XUXTADAPI Exiting, Response: ",XUXTADRTNVAL
 K @XUXTADSSIA,@TROOT
 Q XUXTADRTNVAL
 ;
 ; 
 ; Show Is Service/Section with IEN: AXUXTADSSIEN Assigned
 ;
 ; S AXUXTADSSIEN=1048
 ; D SHOWVISSA^XUXTADAPI(AXUXTADSSIEN)
SHOWVISSA(AXUXTADSSIEN) ;
 N XUXTADRTNVAL,XUXTADHEADER
 S XUXTADRTNVAL=$$ISSAFM(AXUXTADSSIEN)
 S XUXTADHEADER="Is Service/Section Assigned:"
 D SHOWV(XUXTADHEADER,$S(XUXTADRTNVAL=0:"No",1:"Yes"))
 Q
 ;
 ;
 ; Show AXUXTADHEADER followed by AXUXTADVALUE
 ;
 ; D SHOWV^XUXTADAPI(AXUXTADHEADER,AXUXTADVALUE)
SHOWV(AXUXTADHEADER,AXUXTADVALUE) ;
 N XUXTADHEADER,XUXTADVALUE
 S XUXTADHEADER="Value: ",XUXTADVALUE="Undefined"
 S:$L($G(AXUXTADHEADER)) XUXTADHEADER=AXUXTADHEADER
 S:$L($G(AXUXTADVALUE)) XUXTADVALUE=AXUXTADVALUE
 W !!,XUXTADHEADER," ",XUXTADVALUE,!!
 Q
 ;
 ;
 ; Show AXUXTADHEADER followed by ANXUXTADARRAY
 ;
 ; D SHOWA^XUXTADAPI(AXUXTADHEADER,ANXUXTADARRAY)
SHOWA(AXUXTADHEADER,ANXUXTADARRAY) ;
 N XUXTADHEADER,XUXTADARRAY
 S XUXTADHEADER="Array: ",XUXTADARRAY="Undefined"
 S:$L($G(AXUXTADHEADER)) XUXTADHEADER=AXUXTADHEADER
 S:$L($G(ANXUXTADARRAY)) XUXTADARRAY=ANXUXTADARRAY
 W !!,XUXTADHEADER
 I $D(@XUXTADARRAY)>1 W !! ZW @XUXTADARRAY
 E  W !!,@XUXTADARRAY,!!
 Q
 ;
 ;