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

XUXTADAPI3.m

Go to the documentation of this file.
XUXTADAPI3 ;SLC/JLA - Service/Section Edit API's ; NOV 27, 2024@12:30
 ;;8.0;KERNEL;**807**;Jan 30, 2024;Build 56;
 ;
 ;
 ; External API'S
GSSCDCR(AXUXTADSSIEN) Q $$GSSCDCR^XUXTADAPI($G(AXUXTADSSIEN))
GSSCDCRFM(AXUXTADSSIEN) Q $$GSSCDCRFM^XUXTADAPI($G(AXUXTADSSIEN))
GASSINFM(AXUXTADSSIA) D GASSINFM^XUXTADAPI($G(AXUXTADSSIA)) Q
GAUSSXFM(AXUXTADAUSSA) Q $$GAUSSXFM^XUXTADAPI2($G(AXUXTADAUSSA))
SHOWA(AXUXTADHEADER,ANXUXTADARRAY) D SHOWA^XUXTADAPI($G(AXUXTADHEADER),$G(ANXUXTADARRAY)) Q
 ;
 ;
 ; API's available to show data:
 ;   D SHOWAROSS^XUXTADAPI3()  - Show All Re-opened Service/Sections
 ;   D SHOWACSS^XUXTADAPI3()   - Show All Closed Service/Sections
 ;   D SHOWACSSNU^XUXTADAPI3() - Show All Closed Service/Sections with No Users Assigned
 ;   D SHOWACSSU^XUXTADAPI3()  - Show All Closed Service/Sections with Users Assigned
 ;   D SHOWAOSS^XUXTADAPI3()   - Show All Open Service/Sections
 ;   D SHOWAOSSNU^XUXTADAPI3() - Show All Open Service/Sections with No Users Assigned
 ;   D SHOWAOSSU^XUXTADAPI3()  - Show All Open Service/Sections with Users Assigned
 ;
 ;
 ; Get All Closed Service/Section's and save in Array: AXUXTADSSCA
 ; 
 ;   AXUXTADSSCA  - An array to hold all Service/Section that are Closed
 ;
 ; Returns AXUXTADSSCA populated with the Service/Section that are Closed
 ;
 ; S XUXTADSSCA="SSC" 
 ; W $$GACSS^XUXTADAPI3(XUXTADSSCA)
GACSS(AXUXTADSSCA) ;
 NEW XUXTADSSCA,XUXTADSSIEN,XUXTADCDCR,XUXTADCDC,XUXTADCDR,XUXTADRTNVAL
 I '$D(VERBOSE) NEW VERBOSE S VERBOSE=0
 ;I VERBOSE W !,"GACSS^XUXTADAPI3(",$G(AXUXTADSSCA),") Called"
 ;I VERBOSE W !,"Get all Closed Service/Section's"
 S XUXTADSSCA=$G(AXUXTADSSCA)
 I $L(XUXTADSSCA)'>0 D  G GACSSDN
 . S XUXTADRTNVAL="-1^Results array parameter AXUXTADSSCA is not valid"
 S (@XUXTADSSCA,XUXTADSSIEN)=0
 F  S XUXTADSSIEN=$O(^DIC(49,XUXTADSSIEN)) Q:'XUXTADSSIEN  D
 . ; Get the current Date Closed record
 . S XUXTADCDCR=$$GSSCDCR(XUXTADSSIEN)
 . ; If there is no Date Closed record then the Service/Section is Open
 . I $L(XUXTADCDCR)=0 Q
 . S XUXTADCDR=$P(XUXTADCDCR,"^",2)
 . ; If there is a Date Re-opened field then the Service/Section is Open
 . I $L(XUXTADCDR)>0 Q
 . ; If we are here, the Service/Section is Closed
 . S XUXTADCDC=$P(XUXTADCDCR,"^",1)
 . S @XUXTADSSCA=@XUXTADSSCA+1
 . S @XUXTADSSCA@(XUXTADSSIEN)=XUXTADCDC
 S XUXTADRTNVAL=@XUXTADSSCA
GACSSDN ;
 ;I VERBOSE W !,"GACSS^XUXTADAPI3 Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADSSCA
 Q XUXTADRTNVAL
 ;
 ;
 ; Get All Closed Service/Section's and save in Array: AXUXTADSSCA
 ; 
 ;   AXUXTADSSCA  - An array to hold all Service/Section that are Closed
 ;
 ; Returns AXUXTADSSCA populated with the Service/Section that are Closed
 ;
 ; S XUXTADSSCA="SSC" 
 ; W $$GACSSFM^XUXTADAPI3(XUXTADSSCA)
GACSSFM(AXUXTADSSCA) ;
 NEW XUXTADSSCA,XUXTADSSIA,XUXTADSSIEN,XUXTADCDCR,XUXTADCDC,XUXTADCDR,XUXTADRTNVAL
 I '$D(VERBOSE) NEW VERBOSE S VERBOSE=0
 ;I VERBOSE W !,"GACSSFM^XUXTADAPI3(",$G(AXUXTADSSCA),") Called"
 ;I VERBOSE W !,"Get all Closed Service/Section's"
 S XUXTADSSCA=$G(AXUXTADSSCA),XUXTADSSIA="GACSSFMSSI"
 I $L(XUXTADSSCA)'>0 D  G GACSSFMDN
 . S XUXTADRTNVAL="-1^Results array parameter AXUXTADSSCA is not valid"
 S (@XUXTADSSCA,XUXTADSSIEN)=0
 ; Get All Service/Section IEN records
 ;D GASSIFM(XUXTADSSIA)
 ; Get All Service/Section IEN=Name records
 D GASSINFM(XUXTADSSIA)
 K @XUXTADSSCA
 S @XUXTADSSCA=0
 F  S XUXTADSSIEN=$O(@XUXTADSSIA@(XUXTADSSIEN)) Q:'XUXTADSSIEN  D
 . ; Get the current Date Closed record for this Service/Section
 . S XUXTADCDCR=$$GSSCDCRFM(XUXTADSSIEN)
 . ; If there is no Date Closed record then the Service/Section is Open
 . I $L(XUXTADCDCR)=0 Q
 . S XUXTADCDR=$P(XUXTADCDCR,"^",2)
 . ; If there is a Date Re-opened field then the Service/Section is Open
 . I $L(XUXTADCDR)>0 Q
 . ; If we are here, the Service/Section is Closed
 . S XUXTADCDC=$P(XUXTADCDCR,"^",1)
 . S @XUXTADSSCA=@XUXTADSSCA+1
 . ;S @XUXTADSSCA@(XUXTADSSIEN)=XUXTADCDC
 . S @XUXTADSSCA@(XUXTADSSIEN)=@XUXTADSSIA@(XUXTADSSIEN)_"^"_XUXTADCDC
 S XUXTADRTNVAL=@XUXTADSSCA
GACSSFMDN ;
 ;I VERBOSE W !,"GACSSFM^XUXTADAPI3 Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADSSCA
 K @XUXTADSSIA
 Q XUXTADRTNVAL
 ;
 ;
 ; Get All Open Service/Section's and save in Array: AXUXTADSSCA
 ; 
 ;   AXUXTADSSCA  - An array to hold all Service/Section that are Open
 ;
 ; Returns AXUXTADSSCA populated with the Service/Section that are Open
 ;   along with a RE-OPENED DATE if one exists
 ;
 ; S XUXTADSSOA="SSO" 
 ; W $$GAOSS^XUXTADAPI3(XUXTADSSOA)
GAOSS(AXUXTADSSOA) ;
 NEW XUXTADSSOA,XUXTADSSIEN,XUXTADCDCR,XUXTADCDR,XUXTADRTNVAL
 I '$D(VERBOSE) NEW VERBOSE S VERBOSE=0
 ;I VERBOSE W !,"GAOSS^XUXTADAPI3(",$G(AXUXTADSSOA),") Called"
 ;I VERBOSE W !,"Get all Open Service/Section's"
 S XUXTADSSOA=$G(AXUXTADSSOA)
 I $L(XUXTADSSOA)'>0 D  G GAOSSDN
 . S XUXTADRTNVAL="-1^Results array parameter AXUXTADSSCA is not valid"
 S (@XUXTADSSOA,XUXTADSSIEN)=0
 F  S XUXTADSSIEN=$O(^DIC(49,XUXTADSSIEN)) Q:'XUXTADSSIEN  D
 . ; Get the current Date Closed record
 . S XUXTADCDCR=$$GSSCDCR(XUXTADSSIEN)
 . S XUXTADCDR=$P(XUXTADCDCR,"^",2)
 . ; If there is no Date Closed record OR If the Date Re-opened field has a value
 . ; then the Service/Section is Open
 . I ($L(XUXTADCDCR)=0)!($L(XUXTADCDR)>0) D
 .. S @XUXTADSSOA=@XUXTADSSOA+1
 .. S @XUXTADSSOA@(XUXTADSSIEN)=XUXTADCDR
 S XUXTADRTNVAL=@XUXTADSSOA
GAOSSDN ;
 ;I VERBOSE W !,"GAOSS^XUXTADAPI3 Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADSSOA
 Q XUXTADRTNVAL
 ;
 ;
 ; Get All Open Service/Section's and save in Array: AXUXTADSSCA
 ; 
 ;   AXUXTADSSCA  - An array to hold all Service/Section that are Open
 ;
 ; Returns AXUXTADSSCA populated with the Service/Section that are Open
 ;   along with a RE-OPENED DATE if one exists
 ;
 ; S XUXTADSSOA="SSO" 
 ; W $$GAOSSFM^XUXTADAPI3(XUXTADSSOA)
GAOSSFM(AXUXTADSSOA) ;
 NEW XUXTADSSOA,XUXTADSSIA,XUXTADSSIEN,XUXTADCDCR,XUXTADCDR,XUXTADRTNVAL
 I '$D(VERBOSE) NEW VERBOSE S VERBOSE=0
 ;I VERBOSE W !,"GAOSSFM^XUXTADAPI3(",$G(AXUXTADSSOA),") Called"
 ;I VERBOSE W !,"Get all Open Service/Section's"
 S XUXTADSSOA=$G(AXUXTADSSOA),XUXTADSSIA="GAOSSFMSSI"
 I $L(XUXTADSSOA)'>0 D  G GAOSSFMDN
 . S XUXTADRTNVAL="-1^Results array parameter AXUXTADSSCA is not valid"
 S (@XUXTADSSOA,XUXTADSSIEN)=0
 ; Get All Service/Section IEN records
 ;D GASSIFM(XUXTADSSIA)
 ; Get All Service/Section IEN=Name records
 D GASSINFM(XUXTADSSIA)
 K @XUXTADSSOA
 S @XUXTADSSOA=0
 F  S XUXTADSSIEN=$O(@XUXTADSSIA@(XUXTADSSIEN)) Q:'XUXTADSSIEN  D
 . ; Get the current Date Closed record for this Service/Section
 . S XUXTADCDCR=$$GSSCDCRFM(XUXTADSSIEN)
 . S XUXTADCDR=$P(XUXTADCDCR,"^",2)
 . ; If there is no Date Closed record OR If the Date Re-opened field has a value
 . ; then the Service/Section is Open
 . I ($L(XUXTADCDCR)=0)!($L(XUXTADCDR)>0) D
 .. S @XUXTADSSOA=@XUXTADSSOA+1
 .. ;S @XUXTADSSOA@(XUXTADSSIEN)=XUXTADCDR
 .. S @XUXTADSSOA@(XUXTADSSIEN)=@XUXTADSSIA@(XUXTADSSIEN)_"^"_XUXTADCDR
 S XUXTADRTNVAL=@XUXTADSSOA
GAOSSFMDN ;
 ;I VERBOSE W !,"GAOSSFM^XUXTADAPI3 Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADSSOA
 K @XUXTADSSIA
 Q XUXTADRTNVAL
 ;
 ;
 ; Get All Re-opened Service/Section's and save in Array: AXUXTADSSCA
 ; 
 ;   AXUXTADSSCA  - An array to hold all Service/Section that have been Re-opened
 ;
 ; Returns AXUXTADSSCA populated with the Service/Section that have been Re-opened
 ;
 ; S XUXTADSSROA="SSRO" 
 ; W $$GAROSS^XUXTADAPI3(XUXTADSSROA)
GAROSS(AXUXTADSSROA) ;
 NEW XUXTADSSROA,XUXTADSSIEN,XUXTADCDCR,XUXTADCDR,XUXTADRTNVAL
 I '$D(VERBOSE) NEW VERBOSE S VERBOSE=0
 ;I VERBOSE W !,"GAROSS^XUXTADAPI3(",$G(AXUXTADSSROA),") Called"
 ;I VERBOSE W !,"Get all Re-opened Service/Section's"
 S XUXTADSSROA=$G(AXUXTADSSROA)
 I $L(XUXTADSSROA)'>0 D  G GAROSSDN
 . S XUXTADRTNVAL="-1^Results array parameter AXUXTADSSCA is not valid"
 S (@XUXTADSSROA,XUXTADSSIEN)=0
 F  S XUXTADSSIEN=$O(^DIC(49,XUXTADSSIEN)) Q:'XUXTADSSIEN  D
 . ; Get the current Date Closed record
 . S XUXTADCDCR=$$GSSCDCR(XUXTADSSIEN)
 . S XUXTADCDR=$P(XUXTADCDCR,"^",2)
 . ; If there is a Date Closed record AND If the Date Re-opened field has a value
 . ; then the Service/Section is Open
 . I ($L(XUXTADCDCR)>0)&($L(XUXTADCDR)>0) D
 .. S @XUXTADSSROA=@XUXTADSSROA+1
 .. S @XUXTADSSROA@(XUXTADSSIEN)=XUXTADCDR
 S XUXTADRTNVAL=@XUXTADSSROA
GAROSSDN ;
 ;I VERBOSE W !,"GAROSS^XUXTADAPI3 Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADSSROA
 Q XUXTADRTNVAL
 ;
 ;
 ; Get All Re-opened Service/Section's and save in Array: AXUXTADSSCA
 ; 
 ;   AXUXTADSSCA  - An array to hold all Service/Section that have been Re-opened
 ;
 ; Returns AXUXTADSSCA populated with the Service/Section that have been Re-opened
 ;
 ; S XUXTADSSROA="SSRO" 
 ; W $$GAROSSFM^XUXTADAPI3(XUXTADSSROA)
GAROSSFM(AXUXTADSSROA) ;
 NEW XUXTADSSROA,XUXTADSSIA,XUXTADSSIEN,XUXTADCDCR,XUXTADCDR,XUXTADRTNVAL
 I '$D(VERBOSE) NEW VERBOSE S VERBOSE=0
 I VERBOSE W !,"GAROSSFM^XUXTADAPI3(",$G(AXUXTADSSROA),") Called"
 I VERBOSE W !,"Get all Re-opened Service/Section's"
 S XUXTADSSROA=$G(AXUXTADSSROA),XUXTADSSIA="GAROSSFMSSI"
 I $L(XUXTADSSROA)'>0 D  G GAROSSFMDN
 . S XUXTADRTNVAL="-1^Results array parameter AXUXTADSSCA is not valid"
 S (@XUXTADSSROA,XUXTADSSIEN)=0
 ; Get All Service/Section IEN records
 ;D GASSIFM(XUXTADSSIA)
 ; Get All Service/Section IEN=Name records
 D GASSINFM(XUXTADSSIA)
 K @XUXTADSSROA
 S @XUXTADSSROA=0
 F  S XUXTADSSIEN=$O(@XUXTADSSIA@(XUXTADSSIEN)) Q:'XUXTADSSIEN  D
 . ; Get the current Date Closed record for this Service/Section
 . S XUXTADCDCR=$$GSSCDCRFM(XUXTADSSIEN)
 . S XUXTADCDR=$P(XUXTADCDCR,"^",2)
 . ; If there is a Date Closed record AND If the Date Re-opened field has a value
 . ; then the Service/Section has been Re-opened
 . I ($L(XUXTADCDCR)>0)&($L(XUXTADCDR)>0) D
 .. S @XUXTADSSROA=@XUXTADSSROA+1
 .. ;S @XUXTADSSROA@(XUXTADSSIEN)=XUXTADCDR
 .. S @XUXTADSSROA@(XUXTADSSIEN)=@XUXTADSSIA@(XUXTADSSIEN)_"^"_XUXTADCDR
 S XUXTADRTNVAL=@XUXTADSSROA
GAROSSFMDN ;
 I VERBOSE W !,"GAROSSFM^XUXTADAPI3 Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADSSROA
 K @XUXTADSSIA
 Q XUXTADRTNVAL
 ;
 ; 
 ; Show All Re-opened Service/Sections
 ;
 ; D SHOWAROSS^XUXTADAPI3
SHOWAROSS() ;
 N XUXTADROSSA,XUXTADRTNVAL,XUXTADHEADER
 S XUXTADROSSA="SHOWAROSS"
 S XUXTADRTNVAL=$$GAROSSFM(XUXTADROSSA)
 S XUXTADHEADER="All Re-opened Service/Sections:"
 D SHOWA(XUXTADHEADER,XUXTADROSSA)
 K @XUXTADROSSA
 Q
 ;
 ;
 ; Get all Closed Service/Section's with:
 ;   AUSERS=Undef - All Closed Service/Section's
 ;   AUSERS=0     - All Closed Service/Section's with No Users Assigned
 ;   AUSERS=1     - All Closed Service/Section's with Users Assigned
 ;
 ;   AXUXTADCSSNUA   - An array to hold the results
 ;
 ; Returns with AXUXTADCSSNUA populated with all Closed Service/Section's 
 ; with no users assigned
 ;
 ; S XUXTADCSSNUA="CSSNUA" 
 ; All Closed Service/Sections 
 ; W $$GACSSNUA^XUXTADAPI3(XUXTADCSSNUA)
 ; All Closed Service/Sections with No Users Assigned
 ; W $$GACSSNUA^XUXTADAPI3(XUXTADCSSNUA,0)
 ; All Closed Service/Sections with Users Assigned
 ; W $$GACSSNUA^XUXTADAPI3(XUXTADCSSNUA,1)
GACSSNUA(AXUXTADCSSNUA,AUSERS) ;
 NEW XUXTADCSSNUA,XUXTADSSCA,XUXTADAUSSA,XUXTADSSIEN,XUXTADRTNVAL
 I '$D(VERBOSE) NEW VERBOSE S VERBOSE=0
 I VERBOSE W !,"GACSSNUA^XUXTADAPI3(",$G(AXUXTADCSSNUA),",",$G(AUSERS),") Called"
 ;I VERBOSE W !,"Get all Closed Service/Section's"_$S(USERS=0:" with No Users",USERS=1:" with Users Assigned",1:""))
 S XUXTADCSSNUA=$G(AXUXTADCSSNUA)
 I $L(XUXTADCSSNUA)'>0 D  G GACSSNUADN
 . S XUXTADRTNVAL="-1^Results array parameter AXUXTADUANSS is not valid"
 S XUXTADSSCA="GACSSNUACSSA"
 K @XUXTADSSCA
 S @XUXTADSSCA=0
 ; Get all Closed Service/Sections
 S XUXTADRTNVAL=$$GACSSFM(XUXTADSSCA)
 I +XUXTADRTNVAL=0 G GACSSNUADN
 S XUXTADAUSSA="GACSSNUAUSSA"
 K @XUXTADAUSSA
 S @XUXTADAUSSA=0
 ; Get all User Service/Sections
 S XUXTADRTNVAL=$$GAUSSXFM(XUXTADAUSSA)
 I +XUXTADRTNVAL=0 G GACSSNUADN
 K @XUXTADCSSNUA
 S @XUXTADCSSNUA=0,XUXTADSSIEN=0
 F  S XUXTADSSIEN=$O(@XUXTADSSCA@(XUXTADSSIEN)) Q:'XUXTADSSIEN  D
 . I $D(AUSERS),('AUSERS)&$D(@XUXTADAUSSA@(XUXTADSSIEN)) Q
 . I $D(AUSERS),(AUSERS)&'$D(@XUXTADAUSSA@(XUXTADSSIEN)) Q
 . ;I $D(@XUXTADAUSSA@(XUXTADSSIEN)) Q
 . S @XUXTADCSSNUA=@XUXTADCSSNUA+1
 . ;S @XUXTADCSSNUA@(XUXTADSSIEN)=""
 . S @XUXTADCSSNUA@(XUXTADSSIEN)=@XUXTADSSCA@(XUXTADSSIEN)
 S XUXTADRTNVAL=@XUXTADCSSNUA
GACSSNUADN ;
 I VERBOSE W !,"GACSSNUA^XUXTADAPI3 Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADCSSNUA
 I $D(XUXTADSSCA) K @XUXTADSSCA
 I $D(XUXTADAUSSA) K @XUXTADAUSSA
 Q XUXTADRTNVAL
 ;
 ; 
 ; Show All Closed Service/Sections
 ;
 ; D SHOWACSS^XUXTADAPI3
SHOWACSS() ;
 N XUXTADOSSA,XUXTADRTNVAL,XUXTADHEADER
 S XUXTADOSSA="SHOWACSS"
 S XUXTADRTNVAL=$$GACSSNUA(XUXTADOSSA)
 S XUXTADHEADER="All Closed Service/Sections:"
 D SHOWA(XUXTADHEADER,XUXTADOSSA)
 K @XUXTADOSSA
 Q
 ;
 ; 
 ; Show All Closed Service/Sections with No Users Assigned
 ;
 ; D SHOWACSSNU^XUXTADAPI3
SHOWACSSNU() ;
 N XUXTADOSSNUA,XUXTADRTNVAL,XUXTADHEADER
 S XUXTADOSSNUA="SHOWACSSNUA"
 S XUXTADRTNVAL=$$GACSSNUA(XUXTADOSSNUA,0)
 S XUXTADHEADER="All Closed Service/Sections with No Users Assigned:"
 D SHOWA(XUXTADHEADER,XUXTADOSSNUA)
 K @XUXTADOSSNUA
 Q
 ;
 ; 
 ; Show All Closed Service/Sections with Users Assigned
 ;
 ; D SHOWACSSU^XUXTADAPI3
SHOWACSSU() ;
 N XUXTADOSSUA,XUXTADRTNVAL,XUXTADHEADER
 S XUXTADOSSUA="SHOWACSSUA"
 S XUXTADRTNVAL=$$GACSSNUA(XUXTADOSSUA,1)
 S XUXTADHEADER="All Closed Service/Sections with Users Assigned:"
 D SHOWA(XUXTADHEADER,XUXTADOSSUA)
 K @XUXTADOSSUA
 Q
 ;
 ;
 ; Get all Open Service/Section's with:
 ;   AUSERS=Undef - All Open Service/Section's
 ;   AUSERS=0     - All Open Service/Section's with No Users Assigned
 ;   AUSERS=1     - All Open Service/Section's with Users Assigned
 ;
 ;   AXUXTADSSNUA   - An array to hold the results
 ;
 ; Returns with AXUXTADSSNUA populated with all open Service/Section's 
 ; with no users assigned
 ;
 ; S XUXTADSSNUA="OSSNUA" 
 ; All Open Service/Sections 
 ; W $$GAOSSNUA^XUXTADAPI3(XUXTADSSNUA)
 ; All Open Service/Sections with No Users Assigned
 ; W $$GAOSSNUA^XUXTADAPI3(XUXTADSSNUA,0)
 ; All Open Service/Sections with Users Assigned
 ; W $$GAOSSNUA^XUXTADAPI3(XUXTADSSNUA,1)
GAOSSNUA(AXUXTADSSNUA,AUSERS) ;
 NEW XUXTADSSNUA,XUXTADSSOA,XUXTADAUSSA,XUXTADSSIEN,XUXTADRTNVAL
 I '$D(VERBOSE) NEW VERBOSE S VERBOSE=0
 ;I VERBOSE W !,"GAOSSNUA(",$G(AXUXTADSSNUA),") called",!
 S XUXTADSSNUA=$G(AXUXTADSSNUA)
 I $L(XUXTADSSNUA)'>0 D  G GAOSSNUADN
 . S XUXTADRTNVAL="-1^Results array parameter AXUXTADUANSS is not valid"
 S XUXTADSSOA="GAOSSNUAOSSA"
 K @XUXTADSSOA
 S @XUXTADSSOA=0
 S XUXTADRTNVAL=$$GAOSSFM(XUXTADSSOA)
 I +XUXTADRTNVAL=0 G GAOSSNUADN
 S XUXTADAUSSA="GAOSSNUAUSSA"
 K @XUXTADAUSSA
 S @XUXTADAUSSA=0
 ; Get all User Service/Sections
 S XUXTADRTNVAL=$$GAUSSXFM(XUXTADAUSSA)
 I +XUXTADRTNVAL=0 G GAOSSNUADN
 K @XUXTADSSNUA
 S @XUXTADSSNUA=0,XUXTADSSIEN=0
 F  S XUXTADSSIEN=$O(@XUXTADSSOA@(XUXTADSSIEN)) Q:'XUXTADSSIEN  D
 . I $D(AUSERS),('AUSERS)&$D(@XUXTADAUSSA@(XUXTADSSIEN)) Q
 . I $D(AUSERS),(AUSERS)&'$D(@XUXTADAUSSA@(XUXTADSSIEN)) Q
 . ;I $D(@XUXTADAUSSA@(XUXTADSSIEN)) Q
 . S @XUXTADSSNUA=@XUXTADSSNUA+1
 . ;S @XUXTADSSNUA@(XUXTADSSIEN)=""
 . S @XUXTADSSNUA@(XUXTADSSIEN)=@XUXTADSSOA@(XUXTADSSIEN)
 ;I VERBOSE W !,"All open Service/Sections with no users assigned",! ZW @XUXTADSSNUA
 S XUXTADRTNVAL=@XUXTADSSNUA
GAOSSNUADN ;
 I $D(XUXTADSSOA) K @XUXTADSSOA
 I $D(XUXTADAUSSA) K @XUXTADAUSSA
 Q XUXTADRTNVAL
 ;
 ; 
 ; Show All Open Service/Sections
 ;
 ; D SHOWAOSS^XUXTADAPI3
SHOWAOSS() ;
 N XUXTADOSSA,XUXTADRTNVAL,XUXTADHEADER
 S XUXTADOSSA="SHOWAOSS"
 S XUXTADRTNVAL=$$GAOSSNUA(XUXTADOSSA)
 S XUXTADHEADER="All Open Service/Sections:"
 D SHOWA(XUXTADHEADER,XUXTADOSSA)
 K @XUXTADOSSA
 Q
 ;
 ; 
 ; Show All Open Service/Sections with No Users Assigned
 ;
 ; D SHOWAOSSNU^XUXTADAPI3
SHOWAOSSNU() ;
 N XUXTADOSSNUA,XUXTADRTNVAL,XUXTADHEADER
 S XUXTADOSSNUA="SHOWAOSSNUA"
 S XUXTADRTNVAL=$$GAOSSNUA(XUXTADOSSNUA,0)
 S XUXTADHEADER="All Open Service/Sections with No Users Assigned:"
 D SHOWA(XUXTADHEADER,XUXTADOSSNUA)
 K @XUXTADOSSNUA
 Q
 ;
 ; 
 ; Show All Open Service/Sections with Users Assigned
 ;
 ; D SHOWAOSSU^XUXTADAPI3
SHOWAOSSU() ;
 N XUXTADOSSUA,XUXTADRTNVAL,XUXTADHEADER
 S XUXTADOSSUA="SHOWAOSSUA"
 S XUXTADRTNVAL=$$GAOSSNUA(XUXTADOSSUA,1)
 S XUXTADHEADER="All Open Service/Sections with Users Assigned:"
 D SHOWA(XUXTADHEADER,XUXTADOSSUA)
 K @XUXTADOSSUA
 Q
 ;
 ;