XUXTADAPI2 ;SLC/JLA - Service/Section Edit API's ; NOV 27, 2024@12:30
;;8.0;KERNEL;**807**;Nov 27, 2024;Build 56;
;
;
; External API'S
GASSIFM(AXUXTADSSIA) D GASSIFM^XUXTADAPI($G(AXUXTADSSIA)) Q
GASSINFM(AXUXTADSSIA) D GASSINFM^XUXTADAPI($G(AXUXTADSSIA)) Q
SHOWA(AXUXTADHEADER,ANXUXTADARRAY) D SHOWA^XUXTADAPI($G(AXUXTADHEADER),$G(ANXUXTADARRAY)) Q
;
; FileMan/ScreenMan API's
GET1(AFILE,AIENS,AFIELD,AFLAGS,ATROOT,AMROOT) Q $$GET1^DIQ($G(AFILE),$G(AIENS),$G(AFIELD),$G(AFLAGS),$G(ATROOT),$G(AMROOT))
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 SHOWAUSS^XUXTADAPI2() - Show All User Service/Section's
; D SHOWASSUC^XUXTADAPI2() - Show All Service/Section's User Counts
; D SHOWAUANESS^XUXTADAPI2() - Show All User Assigned to Non-existent Service/Section
; D SHOWAUASS^XUXTADAPI2(AXUXTADSSIEN)
; Show All Users Assigned to Service/Section with IEN: AXUXTADSSIEN
; D SHOWASSNUA^XUXTADAPI2() - Show All Service/Section with No Users Assigned
;
;
; Get All User Service/Section's using cross reference "E"
;
; AXUXTADAUSSA - An array to hold the results
;
; Uses Database Server API
; LIST^DIC(file[,iens][,fields][,flags][,number][,[.]from][,[.]part][,index][,[.]screen][,identifier][,target_root][,msg_root])
;
; S XUXTADAUSSA="AUSSA"
; W $$GAUSSXFM^XUXTADAPI2(XUXTADAUSSA)
GAUSSXFM(AXUXTADAUSSA) ;
NEW XUXTADSSIEN,XUXTADRTNVAL,XUXTADAUSSA
NEW FILE,FIELDS,FLAGS,MAX,FROM,PART,INDEX,TROOT
I '$D(VERBOSE) NEW VERBOSE S VERBOSE=0
;I VERBOSE W !,"GAUSSXFM^XUXTADAPI2(",$G(AXUXTADAUSSA),") Called"
;I VERBOSE W !,"Get all User Service/Section's"
S XUXTADRTNVAL=1
S XUXTADAUSSA=$G(AXUXTADAUSSA)
I $L(XUXTADAUSSA)'>0 D G GAUSSXFMDN
. S XUXTADRTNVAL="0^Results array AXUXTADAUSSA is not valid"
K @XUXTADAUSSA
S @XUXTADAUSSA=0,XUXTADSSIEN=0
S FILE=200,FIELDS="29;@",FLAGS="I",MAX=2,FROM=XUXTADSSIEN,INDEX="E",TROOT="GAUSSXFMFMD"
S DONE=0
F D LIST(FILE,,FIELDS,FLAGS,MAX,FROM,,INDEX,,,TROOT) Q:DONE D
. S XUXTADSSIEN=+$G(@TROOT@("DILIST","ID",1,29))
. I 'XUXTADSSIEN S DONE=1 Q
. I '$D(@XUXTADAUSSA@(XUXTADSSIEN)) S @XUXTADAUSSA@(XUXTADSSIEN)="",@XUXTADAUSSA=@XUXTADAUSSA+1
. S FROM=XUXTADSSIEN
S XUXTADRTNVAL=@XUXTADAUSSA
GAUSSXFMDN ;
;I VERBOSE W !,"GAUSSXFM^XUXTADAPI2 Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADAUSSA
K @TROOT
Q XUXTADRTNVAL
;
;
; Show All User Service/Section's
;
; D SHOWAUSS^XUXTADAPI2
SHOWAUSS() ;
N XUXTADAUSS,XUXTADRTNVAL,XUXTADHEADER
S XUXTADAUSS="SHOWAUSS"
S XUXTADRTNVAL=$$GAUSSXFM(XUXTADAUSS)
S XUXTADHEADER="All User Service/Sections:"
D SHOWA(XUXTADHEADER,XUXTADAUSS)
K @XUXTADAUSS
Q
;
;
; Get All Service/Section's Assigned User Counts and save in Array: AXUXTADSSAA
; This routine uses the "E" cross reference on file ^VA(200.
;
; Returns AXUXTADSSAA populated with Service/Section's that have users assigned
; and the number of user's assigned to each of those service/sections
;
; AXUXTADSSAA - An array to hold the results
;
; S XUXTADSSAA="SSA"
; W $$GASSAX^XUXTADAPI2(XUXTADSSAA)
GASSAX(AXUXTADSSAA) ;
NEW XUXTADSSIEN,XUXTADUIEN,XUXTADSSAA,XUXTADSSCNT,XUXTADUCNT,XUXTADRTNVAL
S XUXTADSSAA=$G(AXUXTADSSAA)
I $L(XUXTADSSAA)'>0 D G GSSAXDN
. S XUXTADRTNVAL="0^Results array parameter AXUXTADSSAA is not valid"
S (XUXTADSSCNT,XUXTADUCNT)=0
S XUXTADSSIEN=0
F S XUXTADSSIEN=$O(^VA(200,"E",XUXTADSSIEN)) Q:'XUXTADSSIEN D
. S XUXTADUIEN=0
. F S XUXTADUIEN=$O(^VA(200,"E",XUXTADSSIEN,XUXTADUIEN)) Q:'XUXTADUIEN D
.. S XUXTADUCNT=XUXTADUCNT+1
.. I '$D(@XUXTADSSAA@(XUXTADSSIEN)) S @XUXTADSSAA@(XUXTADSSIEN)=1,XUXTADSSCNT=XUXTADSSCNT+1
.. E S @XUXTADSSAA@(XUXTADSSIEN)=@XUXTADSSAA@(XUXTADSSIEN)+1
S (@XUXTADSSAA,XUXTADRTNVAL)=XUXTADSSCNT_"^"_XUXTADUCNT
GSSAXDN ;
Q XUXTADRTNVAL
;
;
; Get All Service/Section's Assigned User Counts and save in Array: AXUXTADSSAA
; This routine uses the "E" cross reference on file ^VA(200.
;
; Returns AXUXTADSSAA populated with Service/Section's that have users assigned
; along with the number of user's assigned to each of those service/sections
;
; AXUXTADSSAA - An array to hold the results
;
; S XUXTADSSAA="SSA"
; W $$GASSAXFM^XUXTADAPI2(XUXTADSSAA)
GASSAXFM(AXUXTADSSAA) ;
NEW XUXTADSSAA,XUXTADSSIEN,XUXTADSSIA,XUXTADSSCNT,XUXTADUCNT,XUXTADSSUA,XUXTADRTNVAL
I '$D(VERBOSE) NEW VERBOSE S VERBOSE=0
;I VERBOSE W !,"GASSAXFM^XUXTADAPI2(",$G(AXUXTADSSAA),") Called"
;I VERBOSE W !,"Get All Service/Section's Assigned User Counts"
S XUXTADSSIA="GASSAXFMSSI",XUXTADSSUA="GASSAXFMSSU"
S XUXTADSSAA=$G(AXUXTADSSAA)
I $L(XUXTADSSAA)'>0 D G GSSAXFMDN
. S XUXTADRTNVAL="0^Results array parameter AXUXTADSSAA is not valid"
K @XUXTADSSAA,@XUXTADSSIA
S (@XUXTADSSAA,@XUXTADSSIA,XUXTADSSIEN,XUXTADSSCNT,XUXTADUCNT)=0
; Get all User Service/Sections
D GAUSSXFM(XUXTADSSIA)
F S XUXTADSSIEN=$O(@XUXTADSSIA@(XUXTADSSIEN)) Q:'XUXTADSSIEN D
. ;I VERBOSE W !,"SSIEN: ",XUXTADSSIEN
. K @XUXTADSSUA
. S @XUXTADSSUA=0
. S XUXTADRTNVAL=$$GSSUXFM(XUXTADSSIEN,XUXTADSSUA)
. ;I VERBOSE W ", USER COUNT: ",@XUXTADSSUA,!
. I @XUXTADSSUA>0 D
.. S XUXTADSSCNT=XUXTADSSCNT+1,XUXTADUCNT=XUXTADUCNT+@XUXTADSSUA
.. S @XUXTADSSAA@(XUXTADSSIEN)=@XUXTADSSUA
S (@XUXTADSSAA,XUXTADRTNVAL)=XUXTADSSCNT_"^"_XUXTADUCNT
GSSAXFMDN ;
;I VERBOSE W !,"GASSAXFM^XUXTADAPI2 Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADSSAA
K @XUXTADSSIA,@XUXTADSSUA
Q XUXTADRTNVAL
;
;
; Show All Service/Section's User Counts
;
; D SHOWASSUC^XUXTADAPI2
SHOWASSUC() ;
N XUXTADASSUC,XUXTADRTNVAL,XUXTADHEADER
S XUXTADASSUC="SHOWASSUC"
S XUXTADRTNVAL=$$GASSAXFM(XUXTADASSUC)
S XUXTADHEADER="All Service/Section's User Counts:"
D SHOWA(XUXTADHEADER,XUXTADASSUC)
K @XUXTADASSUC
Q
;
;
; Get all users assigned to non-existent Service/Section
;
; Returns the total number of users assigned to non-existent Service/Section's
; and populates AXUXTADAUANSS with the non-existent Service/Section's IEN's and User IEN assigned to
; non-existent Service/Section's
;
; S AXUXTADAUANSS="AUAN"
; W $$GAUANESS^XUXTADAPI2(AXUXTADAUANSS)
GAUANESS(AXUXTADAUANSS) ;
N XUXTADSSAA,XUXTADSSIEN,XUXTADUANSS,XUXTADSSUA,XUXTADUIEN,XUXTADRTNVAL
I '$D(VERBOSE) NEW VERBOSE S VERBOSE=0
S XUXTADSSAA="GAUANESSSSA",XUXTADSSIEN=0
S XUXTADUANSS=$G(AXUXTADAUANSS)
I $L(XUXTADUANSS)'>0 D G GAUANESSDN
. S XUXTADRTNVAL="0^Results array parameter AXUXTADAUANSS is not valid"
K @XUXTADSSAA
S XUXTADRTNVAL=$$GASSAX(XUXTADSSAA)
;I VERBOSE W !,"GASSAX XUXTADRTNVAL: ",XUXTADRTNVAL,!
I +XUXTADRTNVAL=0 G GAUANESSDN
S @XUXTADUANSS=0
F S XUXTADSSIEN=$O(@XUXTADSSAA@(XUXTADSSIEN)) Q:'XUXTADSSIEN D
. ;I VERBOSE W !,"XUXTADSSIEN: ",XUXTADSSIEN
. I $D(^DIC(49,XUXTADSSIEN)) Q
. ;I VERBOSE W " DOES NOT EXIST IN ^DIC(49)"
. S XUXTADUIEN=0
. F S XUXTADUIEN=$O(^VA(200,"E",XUXTADSSIEN,XUXTADUIEN)) Q:'XUXTADUIEN D
.. ;I VERBOSE W !,"USER: ",XUXTADUIEN
.. S @XUXTADUANSS=@XUXTADUANSS+1,@XUXTADUANSS@(XUXTADSSIEN,XUXTADUIEN)=""
S XUXTADRTNVAL=@XUXTADUANSS
GAUANESSDN ;
K @XUXTADSSAA
Q XUXTADRTNVAL
;
;
; Get all users assigned to non-existent Service/Section
;
; Returns the total number of users assigned to non-existent Service/Section's
; and populates AXUXTADUANSS with the non-existent Service/Section's IEN's and User IEN assigned to
; non-existent Service/Section's
;
; Uses Database Server API
; $$GET1^DIQ(file,iens,field[,flags],target_root[,msg_root])
;
; S AXUXTADAUANSS="AUAN"
; W $$GAUANESSFM^XUXTADAPI2(AXUXTADAUANSS)
GAUANESSFM(AXUXTADUANSS) ;
NEW XUXTADUANSS,XUXTADSSAA,XUXTADSSIEN,XUXTADSSUA,XUXTADRTNVAL
NEW FILE,FIELD
I '$D(VERBOSE) NEW VERBOSE S VERBOSE=0
;I VERBOSE W !,"GAUANESSFM^XUXTADAPI2(",$G(AXUXTADUANSS),") Called"
;I VERBOSE W !,"Get all Users Assigned to Non-existent Service/Section's"
S XUXTADSSAA="GAUANESSFMSSA",XUXTADSSUA="GAUANESSFMSSU",XUXTADSSIEN=0
S XUXTADUANSS=$G(AXUXTADUANSS)
I $L(XUXTADUANSS)'>0 D G GAUANESSFMDN
. S XUXTADRTNVAL="0^Results array parameter AXUXTADUANSS is not valid"
K @XUXTADSSAA
S @XUXTADSSAA=0
S XUXTADRTNVAL=$$GASSAXFM(XUXTADSSAA)
;I VERBOSE W !,"GASSAXFM XUXTADRTNVAL: ",XUXTADRTNVAL,!
I +XUXTADRTNVAL=0 G GAUANESSFMDN
K @XUXTADUANSS
S @XUXTADUANSS=0,FILE=49,FIELD=.01
F S XUXTADSSIEN=$O(@XUXTADSSAA@(XUXTADSSIEN)) Q:'XUXTADSSIEN D
. ;I VERBOSE W !,"XUXTADSSIEN: ",XUXTADSSIEN
. S XUXTADRTNVAL=$$GET1(FILE,XUXTADSSIEN,FIELD,,)
. I $L(XUXTADRTNVAL) Q
. ;I VERBOSE W !," DOES NOT EXIST IN ^DIC(49)"
. K @XUXTADSSUA
. S @XUXTADSSUA=0
. S XUXTADRTNVAL=$$GSSUXFM(XUXTADSSIEN,XUXTADSSUA)
. ;I VERBOSE W !,"GAUANESSFM: XUXTADSSUA:",! ZW @XUXTADSSUA
. I XUXTADRTNVAL M @XUXTADUANSS@(XUXTADSSIEN)=@XUXTADSSUA
. S @XUXTADUANSS=@XUXTADUANSS+XUXTADRTNVAL
S XUXTADRTNVAL=@XUXTADUANSS
GAUANESSFMDN ;
;I VERBOSE W !,"GAUANESSFM^XUXTADAPI2 Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADUANSS
K @XUXTADSSAA,@XUXTADSSUA
Q XUXTADRTNVAL
;
;
; Show All User Assigned to Non-existent Service/Section
;
; D SHOWAUANESS^XUXTADAPI2
SHOWAUANESS() ;
N XUXTADAUNESS,XUXTADRTNVAL,XUXTADHEADER
S XUXTADAUNESS="SHOWAUANESS"
S XUXTADRTNVAL=$$GAUANESSFM(XUXTADAUNESS)
S XUXTADHEADER="All Users assigned to non-existent Service/Section's:"
D SHOWA(XUXTADHEADER,XUXTADAUNESS)
K @XUXTADAUNESS
Q
;
;
; Get Users Assigned to Service/Section AXUXTADSSIEN and save in Array: AXUXTADSSUA
; This routine uses the "E" cross reference on file ^VA(200.
;
; AXUXTADSSIEN - A Service/Section IEN
; AXUXTADSSUA - An array to hold the results
;
; Returns with AXUXTADSSUA populated with the number of users assigned to AXUXTADSSIEN
; and populated with the user IEN's that are assigned to AXUXTADSSIEN
;
; S XUXTADSSUA="SSU"
; W $$GSSUX^XUXTADAPI2(1041,XUXTADSSUA)
GSSUX(AXUXTADSSIEN,AXUXTADSSUA) ;
NEW XUXTADSSIEN,XUXTADSSUA,XUXTADUIEN,XUXTADRTNVAL
S XUXTADRTNVAL=1
S XUXTADSSIEN=+$G(AXUXTADSSIEN)
I (XUXTADSSIEN'>0)!('$D(^DIC(49,XUXTADSSIEN))) D G GSSUXDN
. S XUXTADRTNVAL="0^Service/Section IEN "_XUXTADSSIEN_" is not valid"
S XUXTADSSUA=$G(AXUXTADSSUA)
I $L(XUXTADSSUA)'>0 D G GSSUXDN
. S XUXTADRTNVAL="0^Results array AXUXTADSSUA is not valid"
S @XUXTADSSUA=0
S XUXTADUIEN=0
F S XUXTADUIEN=$O(^VA(200,"E",XUXTADSSIEN,XUXTADUIEN)) Q:'XUXTADUIEN D
. S @XUXTADSSUA=@XUXTADSSUA+1,@XUXTADSSUA@(@XUXTADSSUA)=XUXTADUIEN
S XUXTADRTNVAL=@XUXTADSSUA
GSSUXDN ;
Q XUXTADRTNVAL
;
;
; Get Users Assigned to Service/Section AXUXTADSSIEN and save in Array: AXUXTADSSUA
; This routine uses the "E" cross reference on file ^VA(200.
;
; AXUXTADSSIEN - A Service/Section IEN
; AXUXTADSSUA - An array to hold the results
;
; Returns the number of users assigned to AXUXTADSSIEN and AXUXTADSSUA populated with
; the user IEN's that are assigned to AXUXTADSSIEN
;
;
; Uses Database Server API
; LIST^DIC(file[,iens][,fields][,flags][,number][,[.]from][,[.]part][,index][,[.]screen][,identifier][,target_root][,msg_root])
;
; S XUXTADSSUA="SSU"
; W $$GSSUXFM^XUXTADAPI2(1041,XUXTADSSUA)
GSSUXFM(AXUXTADSSIEN,AXUXTADSSUA) ;
NEW XUXTADSSIEN,XUXTADSSUA,XUXTADSSIA,XUXTADRTNVAL
NEW FILE,FIELDS,FLAGS,FROM,PART,INDEX,TROOT
I '$D(VERBOSE) NEW VERBOSE S VERBOSE=0
;I VERBOSE W !,"GSSUXFM^XUXTADAPI2(",$G(AXUXTADSSIEN),",",$G(AXUXTADSSUA),") Called"
;I VERBOSE W !,"Get Users Assigned to Service/Section ",$G(AXUXTADSSIEN)
S XUXTADRTNVAL=1,TROOT="GSSUXFMFMD",XUXTADSSIA="GSSUXFMSSI"
S XUXTADSSIEN=+$G(AXUXTADSSIEN)
; Verify that the SS IEN passed in is valid
I (XUXTADSSIEN'>0) D G GSSUXFMDN
. S XUXTADRTNVAL="0^Service/Section IEN "_XUXTADSSIEN_" is not valid"
S XUXTADSSUA=$G(AXUXTADSSUA)
I $L(XUXTADSSUA)'>0 D G GSSUXFMDN
. S XUXTADRTNVAL="0^Results array AXUXTADSSUA is not valid"
K @XUXTADSSUA
S @XUXTADSSUA=0
S FILE=200,FIELDS="@",FLAGS="I",FROM=XUXTADSSIEN-1,PART=XUXTADSSIEN,INDEX="E"
D LIST(FILE,,FIELDS,FLAGS,,FROM,PART,INDEX,,,TROOT)
S XUXTADRTNVAL=0
I $D(@TROOT@("DILIST",0))&$D(@TROOT@("DILIST",2)) D
. ;I VERBOSE W ! ZW @TROOT
. M @XUXTADSSUA=@TROOT@("DILIST",2)
. S @XUXTADSSUA=$P(@TROOT@("DILIST",0),U)
S XUXTADRTNVAL=@XUXTADSSUA
GSSUXFMDN ;
;I VERBOSE W !,"GSSUXFM^XUXTADAPI2 Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADSSUA
K @TROOT
Q XUXTADRTNVAL
;
;
; Show All Users Assigned to Service/Section AXUXTADSSIEN
;
; S AXUXTADSSIEN=1029
; D SHOWAUASS^XUXTADAPI2(AXUXTADSSIEN)
SHOWAUASS(AXUXTADSSIEN) ;
N XUXTADAUASS,XUXTADRTNVAL,XUXTADHEADER
S XUXTADAUASS="SHOWAUASS"
S XUXTADRTNVAL=$$GSSUXFM(AXUXTADSSIEN,XUXTADAUASS)
I +XUXTADRTNVAL=0 S @XUXTADAUASS=$P(XUXTADRTNVAL,"^",2)
W "XUXTADRTNVAL: ",XUXTADRTNVAL ZW @XUXTADAUASS
S XUXTADHEADER="All Users Assigned to Service/Section IEN "_AXUXTADSSIEN_":"
D SHOWA(XUXTADHEADER,XUXTADAUASS)
K @XUXTADAUASS
Q
;
;
; Get Service/Section's with No Users Assigned and save in Array: AXUXTADSSNUA
; This routine uses the "E" cross reference on file ^VA(200.
;
; AXUXTADSSNUA - An array to hold the results
;
; Returns with AXUXTADSSNUA populated with the Service/Section's that have no users assigned
;
; S XUXTADSSNUA="SSNU"
; W $$GSSNUX^XUXTADAPI2(XUXTADSSNUA)
GSSNUX(AXUXTADSSNUA) ;
NEW XUXTADSSIEN,XUXTADSSNUA,XUXTADSSAA,XUXTADRTNVAL
I '$D(VERBOSE) NEW VERBOSE S VERBOSE=0
S XUXTADSSAA="SSA",XUXTADSSIEN=0
S XUXTADSSNUA=$G(AXUXTADSSNUA)
I $L(XUXTADSSNUA)'>0 D G GSSNUXDN
. S XUXTADRTNVAL="0^Results array AXUXTADSSNUA is not valid"
S @XUXTADSSNUA=0
K @XUXTADSSAA
S XUXTADRTNVAL=$$GASSAX(XUXTADSSAA)
;I VERBOSE W !,"GASSAX XUXTADRTNVAL: ",XUXTADRTNVAL,!
I +XUXTADRTNVAL=0 G GSSNUXDN
F S XUXTADSSIEN=$O(^DIC(49,XUXTADSSIEN)) Q:'XUXTADSSIEN D
. ;I VERBOSE W !,"XUXTADSSIEN: ",XUXTADSSIEN
. I $D(@XUXTADSSAA@(XUXTADSSIEN)) Q
. ;I VERBOSE W ", has no Users assigned: "
. S @XUXTADSSNUA=@XUXTADSSNUA+1,@XUXTADSSNUA@(XUXTADSSIEN)=""
S XUXTADRTNVAL=@XUXTADSSNUA
GSSNUXDN ;
K @XUXTADSSAA
Q XUXTADRTNVAL
;
;
; Get Service/Section's with No Users Assigned and save in Array: AXUXTADSSNUA
; This routine uses the "E" cross reference on file ^VA(200.
;
; AXUXTADSSNUA - An array to hold the results
;
; Returns with AXUXTADSSNUA populated with the Service/Section's that have no users assigned
;
; S XUXTADSSNUA="SSNU"
; W $$GSSNUXFM^XUXTADAPI2(XUXTADSSNUA)
GSSNUXFM(AXUXTADSSNUA) ;
NEW XUXTADSSNUA,XUXTADSSIA,XUXTADSSIEN,XUXTADSSAA,XUXTADRTNVAL
I '$D(VERBOSE) NEW VERBOSE S VERBOSE=0
;I VERBOSE W !,"GSSNUXFM^XUXTADAPI2(",$G(AXUXTADSSNUA),") Called"
;I VERBOSE W !,"Get Service/Section's with No Users Assigned"
S XUXTADSSAA="GSSNUXFMSSA",XUXTADSSIA="GSSNUXFMSSI",XUXTADSSIEN=0
S XUXTADSSNUA=$G(AXUXTADSSNUA)
I $L(XUXTADSSNUA)'>0 D G GSSNUXFMDN
. S XUXTADRTNVAL="0^Results array AXUXTADSSNUA is not valid"
S @XUXTADSSNUA=0
K @XUXTADSSAA
S @XUXTADSSAA=0
; Get All Service/Section's Assigned
S XUXTADRTNVAL=$$GASSAXFM(XUXTADSSAA)
;I VERBOSE W !,"GASSAXFM XUXTADRTNVAL: ",XUXTADRTNVAL,!
I +XUXTADRTNVAL=0 G GSSNUXFMDN
K @XUXTADSSIA
S @XUXTADSSIA=0
; Get All Service/Section IEN's
D GASSINFM(XUXTADSSIA)
F S XUXTADSSIEN=$O(@XUXTADSSIA@(XUXTADSSIEN)) Q:'XUXTADSSIEN D
. ;I VERBOSE W !,"SSIEN: ",XUXTADSSIEN
. I $D(@XUXTADSSAA@(XUXTADSSIEN)) Q
. ;I VERBOSE W ", has no Users assigned: "
. S @XUXTADSSNUA=@XUXTADSSNUA+1,@XUXTADSSNUA@(XUXTADSSIEN)=@XUXTADSSIA@(XUXTADSSIEN)
S XUXTADRTNVAL=@XUXTADSSNUA
GSSNUXFMDN ;
;I VERBOSE W !,"GSSNUXFM^XUXTADAPI2 Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADSSNUA
K @XUXTADSSIA,@XUXTADSSAA
Q XUXTADRTNVAL
;
;
; Show All Service/Section with No Users Assigned
;
; D SHOWASSNUA^XUXTADAPI2()
SHOWASSNUA() ;
N XUXTADASSNUA,XUXTADRTNVAL,XUXTADHEADER
S XUXTADASSNUA="SHOWASSNUA"
S XUXTADRTNVAL=$$GSSNUXFM(XUXTADASSNUA)
I +XUXTADRTNVAL=0 S @XUXTADASSNUA=$P(XUXTADRTNVAL,"^",2)
;I VERBOSE W "XUXTADRTNVAL: ",XUXTADRTNVAL ZW @XUXTADASSNUA
S XUXTADHEADER="Show All Service/Section with No Users Assigned:"
D SHOWA(XUXTADHEADER,XUXTADASSNUA)
K @XUXTADASSNUA
Q
;
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HXUXTADAPI2 16485 printed Sep 23, 2025@19:50:31 Page 2
XUXTADAPI2 ;SLC/JLA - Service/Section Edit API's ; NOV 27, 2024@12:30
+1 ;;8.0;KERNEL;**807**;Nov 27, 2024;Build 56;
+2 ;
+3 ;
+4 ; External API'S
GASSIFM(AXUXTADSSIA) DO GASSIFM^XUXTADAPI($GET(AXUXTADSSIA))
QUIT
GASSINFM(AXUXTADSSIA) DO GASSINFM^XUXTADAPI($GET(AXUXTADSSIA))
QUIT
SHOWA(AXUXTADHEADER,ANXUXTADARRAY) DO SHOWA^XUXTADAPI($GET(AXUXTADHEADER),$GET(ANXUXTADARRAY))
QUIT
+1 ;
+2 ; FileMan/ScreenMan API's
GET1(AFILE,AIENS,AFIELD,AFLAGS,ATROOT,AMROOT) QUIT $$GET1^DIQ($GET(AFILE),$GET(AIENS),$GET(AFIELD),$GET(AFLAGS),$GET(ATROOT),$GET(AMROOT))
LIST(AFILE,AIENS,AFIELD,AFLAGS,AMAX,AFROM,APART,AINDEX,ASCREEN,AIDENTIFIER,ATROOT,AMROOT) DO LIST^DIC($GET(AFILE),$GET(AIENS),$GET(AFIELD),$GET(AFLAGS),$GET(AMAX),$GET(AFROM),$GET(APART),$GET(AINDEX),$GET(ASCREEN),$GET(AIDENTIFIER),$GET(ATROOT),$GET(AMRO
OT))
QUIT
+1 ;
+2 ;
+3 ; API's available to show data:
+4 ; D SHOWAUSS^XUXTADAPI2() - Show All User Service/Section's
+5 ; D SHOWASSUC^XUXTADAPI2() - Show All Service/Section's User Counts
+6 ; D SHOWAUANESS^XUXTADAPI2() - Show All User Assigned to Non-existent Service/Section
+7 ; D SHOWAUASS^XUXTADAPI2(AXUXTADSSIEN)
+8 ; Show All Users Assigned to Service/Section with IEN: AXUXTADSSIEN
+9 ; D SHOWASSNUA^XUXTADAPI2() - Show All Service/Section with No Users Assigned
+10 ;
+11 ;
+12 ; Get All User Service/Section's using cross reference "E"
+13 ;
+14 ; AXUXTADAUSSA - An array to hold the results
+15 ;
+16 ; Uses Database Server API
+17 ; LIST^DIC(file[,iens][,fields][,flags][,number][,[.]from][,[.]part][,index][,[.]screen][,identifier][,target_root][,msg_root])
+18 ;
+19 ; S XUXTADAUSSA="AUSSA"
+20 ; W $$GAUSSXFM^XUXTADAPI2(XUXTADAUSSA)
GAUSSXFM(AXUXTADAUSSA) ;
+1 NEW XUXTADSSIEN,XUXTADRTNVAL,XUXTADAUSSA
+2 NEW FILE,FIELDS,FLAGS,MAX,FROM,PART,INDEX,TROOT
+3 IF '$DATA(VERBOSE)
NEW VERBOSE
SET VERBOSE=0
+4 ;I VERBOSE W !,"GAUSSXFM^XUXTADAPI2(",$G(AXUXTADAUSSA),") Called"
+5 ;I VERBOSE W !,"Get all User Service/Section's"
+6 SET XUXTADRTNVAL=1
+7 SET XUXTADAUSSA=$GET(AXUXTADAUSSA)
+8 IF $LENGTH(XUXTADAUSSA)'>0
Begin DoDot:1
+9 SET XUXTADRTNVAL="0^Results array AXUXTADAUSSA is not valid"
End DoDot:1
GOTO GAUSSXFMDN
+10 KILL @XUXTADAUSSA
+11 SET @XUXTADAUSSA=0
SET XUXTADSSIEN=0
+12 SET FILE=200
SET FIELDS="29;@"
SET FLAGS="I"
SET MAX=2
SET FROM=XUXTADSSIEN
SET INDEX="E"
SET TROOT="GAUSSXFMFMD"
+13 SET DONE=0
+14 FOR
DO LIST(FILE,,FIELDS,FLAGS,MAX,FROM,,INDEX,,,TROOT)
if DONE
QUIT
Begin DoDot:1
+15 SET XUXTADSSIEN=+$GET(@TROOT@("DILIST","ID",1,29))
+16 IF 'XUXTADSSIEN
SET DONE=1
QUIT
+17 IF '$DATA(@XUXTADAUSSA@(XUXTADSSIEN))
SET @XUXTADAUSSA@(XUXTADSSIEN)=""
SET @XUXTADAUSSA=@XUXTADAUSSA+1
+18 SET FROM=XUXTADSSIEN
End DoDot:1
+19 SET XUXTADRTNVAL=@XUXTADAUSSA
GAUSSXFMDN ;
+1 ;I VERBOSE W !,"GAUSSXFM^XUXTADAPI2 Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADAUSSA
+2 KILL @TROOT
+3 QUIT XUXTADRTNVAL
+4 ;
+5 ;
+6 ; Show All User Service/Section's
+7 ;
+8 ; D SHOWAUSS^XUXTADAPI2
SHOWAUSS() ;
+1 NEW XUXTADAUSS,XUXTADRTNVAL,XUXTADHEADER
+2 SET XUXTADAUSS="SHOWAUSS"
+3 SET XUXTADRTNVAL=$$GAUSSXFM(XUXTADAUSS)
+4 SET XUXTADHEADER="All User Service/Sections:"
+5 DO SHOWA(XUXTADHEADER,XUXTADAUSS)
+6 KILL @XUXTADAUSS
+7 QUIT
+8 ;
+9 ;
+10 ; Get All Service/Section's Assigned User Counts and save in Array: AXUXTADSSAA
+11 ; This routine uses the "E" cross reference on file ^VA(200.
+12 ;
+13 ; Returns AXUXTADSSAA populated with Service/Section's that have users assigned
+14 ; and the number of user's assigned to each of those service/sections
+15 ;
+16 ; AXUXTADSSAA - An array to hold the results
+17 ;
+18 ; S XUXTADSSAA="SSA"
+19 ; W $$GASSAX^XUXTADAPI2(XUXTADSSAA)
GASSAX(AXUXTADSSAA) ;
+1 NEW XUXTADSSIEN,XUXTADUIEN,XUXTADSSAA,XUXTADSSCNT,XUXTADUCNT,XUXTADRTNVAL
+2 SET XUXTADSSAA=$GET(AXUXTADSSAA)
+3 IF $LENGTH(XUXTADSSAA)'>0
Begin DoDot:1
+4 SET XUXTADRTNVAL="0^Results array parameter AXUXTADSSAA is not valid"
End DoDot:1
GOTO GSSAXDN
+5 SET (XUXTADSSCNT,XUXTADUCNT)=0
+6 SET XUXTADSSIEN=0
+7 FOR
SET XUXTADSSIEN=$ORDER(^VA(200,"E",XUXTADSSIEN))
if 'XUXTADSSIEN
QUIT
Begin DoDot:1
+8 SET XUXTADUIEN=0
+9 FOR
SET XUXTADUIEN=$ORDER(^VA(200,"E",XUXTADSSIEN,XUXTADUIEN))
if 'XUXTADUIEN
QUIT
Begin DoDot:2
+10 SET XUXTADUCNT=XUXTADUCNT+1
+11 IF '$DATA(@XUXTADSSAA@(XUXTADSSIEN))
SET @XUXTADSSAA@(XUXTADSSIEN)=1
SET XUXTADSSCNT=XUXTADSSCNT+1
+12 IF '$TEST
SET @XUXTADSSAA@(XUXTADSSIEN)=@XUXTADSSAA@(XUXTADSSIEN)+1
End DoDot:2
End DoDot:1
+13 SET (@XUXTADSSAA,XUXTADRTNVAL)=XUXTADSSCNT_"^"_XUXTADUCNT
GSSAXDN ;
+1 QUIT XUXTADRTNVAL
+2 ;
+3 ;
+4 ; Get All Service/Section's Assigned User Counts and save in Array: AXUXTADSSAA
+5 ; This routine uses the "E" cross reference on file ^VA(200.
+6 ;
+7 ; Returns AXUXTADSSAA populated with Service/Section's that have users assigned
+8 ; along with the number of user's assigned to each of those service/sections
+9 ;
+10 ; AXUXTADSSAA - An array to hold the results
+11 ;
+12 ; S XUXTADSSAA="SSA"
+13 ; W $$GASSAXFM^XUXTADAPI2(XUXTADSSAA)
GASSAXFM(AXUXTADSSAA) ;
+1 NEW XUXTADSSAA,XUXTADSSIEN,XUXTADSSIA,XUXTADSSCNT,XUXTADUCNT,XUXTADSSUA,XUXTADRTNVAL
+2 IF '$DATA(VERBOSE)
NEW VERBOSE
SET VERBOSE=0
+3 ;I VERBOSE W !,"GASSAXFM^XUXTADAPI2(",$G(AXUXTADSSAA),") Called"
+4 ;I VERBOSE W !,"Get All Service/Section's Assigned User Counts"
+5 SET XUXTADSSIA="GASSAXFMSSI"
SET XUXTADSSUA="GASSAXFMSSU"
+6 SET XUXTADSSAA=$GET(AXUXTADSSAA)
+7 IF $LENGTH(XUXTADSSAA)'>0
Begin DoDot:1
+8 SET XUXTADRTNVAL="0^Results array parameter AXUXTADSSAA is not valid"
End DoDot:1
GOTO GSSAXFMDN
+9 KILL @XUXTADSSAA,@XUXTADSSIA
+10 SET (@XUXTADSSAA,@XUXTADSSIA,XUXTADSSIEN,XUXTADSSCNT,XUXTADUCNT)=0
+11 ; Get all User Service/Sections
+12 DO GAUSSXFM(XUXTADSSIA)
+13 FOR
SET XUXTADSSIEN=$ORDER(@XUXTADSSIA@(XUXTADSSIEN))
if 'XUXTADSSIEN
QUIT
Begin DoDot:1
+14 ;I VERBOSE W !,"SSIEN: ",XUXTADSSIEN
+15 KILL @XUXTADSSUA
+16 SET @XUXTADSSUA=0
+17 SET XUXTADRTNVAL=$$GSSUXFM(XUXTADSSIEN,XUXTADSSUA)
+18 ;I VERBOSE W ", USER COUNT: ",@XUXTADSSUA,!
+19 IF @XUXTADSSUA>0
Begin DoDot:2
+20 SET XUXTADSSCNT=XUXTADSSCNT+1
SET XUXTADUCNT=XUXTADUCNT+@XUXTADSSUA
+21 SET @XUXTADSSAA@(XUXTADSSIEN)=@XUXTADSSUA
End DoDot:2
End DoDot:1
+22 SET (@XUXTADSSAA,XUXTADRTNVAL)=XUXTADSSCNT_"^"_XUXTADUCNT
GSSAXFMDN ;
+1 ;I VERBOSE W !,"GASSAXFM^XUXTADAPI2 Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADSSAA
+2 KILL @XUXTADSSIA,@XUXTADSSUA
+3 QUIT XUXTADRTNVAL
+4 ;
+5 ;
+6 ; Show All Service/Section's User Counts
+7 ;
+8 ; D SHOWASSUC^XUXTADAPI2
SHOWASSUC() ;
+1 NEW XUXTADASSUC,XUXTADRTNVAL,XUXTADHEADER
+2 SET XUXTADASSUC="SHOWASSUC"
+3 SET XUXTADRTNVAL=$$GASSAXFM(XUXTADASSUC)
+4 SET XUXTADHEADER="All Service/Section's User Counts:"
+5 DO SHOWA(XUXTADHEADER,XUXTADASSUC)
+6 KILL @XUXTADASSUC
+7 QUIT
+8 ;
+9 ;
+10 ; Get all users assigned to non-existent Service/Section
+11 ;
+12 ; Returns the total number of users assigned to non-existent Service/Section's
+13 ; and populates AXUXTADAUANSS with the non-existent Service/Section's IEN's and User IEN assigned to
+14 ; non-existent Service/Section's
+15 ;
+16 ; S AXUXTADAUANSS="AUAN"
+17 ; W $$GAUANESS^XUXTADAPI2(AXUXTADAUANSS)
GAUANESS(AXUXTADAUANSS) ;
+1 NEW XUXTADSSAA,XUXTADSSIEN,XUXTADUANSS,XUXTADSSUA,XUXTADUIEN,XUXTADRTNVAL
+2 IF '$DATA(VERBOSE)
NEW VERBOSE
SET VERBOSE=0
+3 SET XUXTADSSAA="GAUANESSSSA"
SET XUXTADSSIEN=0
+4 SET XUXTADUANSS=$GET(AXUXTADAUANSS)
+5 IF $LENGTH(XUXTADUANSS)'>0
Begin DoDot:1
+6 SET XUXTADRTNVAL="0^Results array parameter AXUXTADAUANSS is not valid"
End DoDot:1
GOTO GAUANESSDN
+7 KILL @XUXTADSSAA
+8 SET XUXTADRTNVAL=$$GASSAX(XUXTADSSAA)
+9 ;I VERBOSE W !,"GASSAX XUXTADRTNVAL: ",XUXTADRTNVAL,!
+10 IF +XUXTADRTNVAL=0
GOTO GAUANESSDN
+11 SET @XUXTADUANSS=0
+12 FOR
SET XUXTADSSIEN=$ORDER(@XUXTADSSAA@(XUXTADSSIEN))
if 'XUXTADSSIEN
QUIT
Begin DoDot:1
+13 ;I VERBOSE W !,"XUXTADSSIEN: ",XUXTADSSIEN
+14 IF $DATA(^DIC(49,XUXTADSSIEN))
QUIT
+15 ;I VERBOSE W " DOES NOT EXIST IN ^DIC(49)"
+16 SET XUXTADUIEN=0
+17 FOR
SET XUXTADUIEN=$ORDER(^VA(200,"E",XUXTADSSIEN,XUXTADUIEN))
if 'XUXTADUIEN
QUIT
Begin DoDot:2
+18 ;I VERBOSE W !,"USER: ",XUXTADUIEN
+19 SET @XUXTADUANSS=@XUXTADUANSS+1
SET @XUXTADUANSS@(XUXTADSSIEN,XUXTADUIEN)=""
End DoDot:2
End DoDot:1
+20 SET XUXTADRTNVAL=@XUXTADUANSS
GAUANESSDN ;
+1 KILL @XUXTADSSAA
+2 QUIT XUXTADRTNVAL
+3 ;
+4 ;
+5 ; Get all users assigned to non-existent Service/Section
+6 ;
+7 ; Returns the total number of users assigned to non-existent Service/Section's
+8 ; and populates AXUXTADUANSS with the non-existent Service/Section's IEN's and User IEN assigned to
+9 ; non-existent Service/Section's
+10 ;
+11 ; Uses Database Server API
+12 ; $$GET1^DIQ(file,iens,field[,flags],target_root[,msg_root])
+13 ;
+14 ; S AXUXTADAUANSS="AUAN"
+15 ; W $$GAUANESSFM^XUXTADAPI2(AXUXTADAUANSS)
GAUANESSFM(AXUXTADUANSS) ;
+1 NEW XUXTADUANSS,XUXTADSSAA,XUXTADSSIEN,XUXTADSSUA,XUXTADRTNVAL
+2 NEW FILE,FIELD
+3 IF '$DATA(VERBOSE)
NEW VERBOSE
SET VERBOSE=0
+4 ;I VERBOSE W !,"GAUANESSFM^XUXTADAPI2(",$G(AXUXTADUANSS),") Called"
+5 ;I VERBOSE W !,"Get all Users Assigned to Non-existent Service/Section's"
+6 SET XUXTADSSAA="GAUANESSFMSSA"
SET XUXTADSSUA="GAUANESSFMSSU"
SET XUXTADSSIEN=0
+7 SET XUXTADUANSS=$GET(AXUXTADUANSS)
+8 IF $LENGTH(XUXTADUANSS)'>0
Begin DoDot:1
+9 SET XUXTADRTNVAL="0^Results array parameter AXUXTADUANSS is not valid"
End DoDot:1
GOTO GAUANESSFMDN
+10 KILL @XUXTADSSAA
+11 SET @XUXTADSSAA=0
+12 SET XUXTADRTNVAL=$$GASSAXFM(XUXTADSSAA)
+13 ;I VERBOSE W !,"GASSAXFM XUXTADRTNVAL: ",XUXTADRTNVAL,!
+14 IF +XUXTADRTNVAL=0
GOTO GAUANESSFMDN
+15 KILL @XUXTADUANSS
+16 SET @XUXTADUANSS=0
SET FILE=49
SET FIELD=.01
+17 FOR
SET XUXTADSSIEN=$ORDER(@XUXTADSSAA@(XUXTADSSIEN))
if 'XUXTADSSIEN
QUIT
Begin DoDot:1
+18 ;I VERBOSE W !,"XUXTADSSIEN: ",XUXTADSSIEN
+19 SET XUXTADRTNVAL=$$GET1(FILE,XUXTADSSIEN,FIELD,,)
+20 IF $LENGTH(XUXTADRTNVAL)
QUIT
+21 ;I VERBOSE W !," DOES NOT EXIST IN ^DIC(49)"
+22 KILL @XUXTADSSUA
+23 SET @XUXTADSSUA=0
+24 SET XUXTADRTNVAL=$$GSSUXFM(XUXTADSSIEN,XUXTADSSUA)
+25 ;I VERBOSE W !,"GAUANESSFM: XUXTADSSUA:",! ZW @XUXTADSSUA
+26 IF XUXTADRTNVAL
MERGE @XUXTADUANSS@(XUXTADSSIEN)=@XUXTADSSUA
+27 SET @XUXTADUANSS=@XUXTADUANSS+XUXTADRTNVAL
End DoDot:1
+28 SET XUXTADRTNVAL=@XUXTADUANSS
GAUANESSFMDN ;
+1 ;I VERBOSE W !,"GAUANESSFM^XUXTADAPI2 Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADUANSS
+2 KILL @XUXTADSSAA,@XUXTADSSUA
+3 QUIT XUXTADRTNVAL
+4 ;
+5 ;
+6 ; Show All User Assigned to Non-existent Service/Section
+7 ;
+8 ; D SHOWAUANESS^XUXTADAPI2
SHOWAUANESS() ;
+1 NEW XUXTADAUNESS,XUXTADRTNVAL,XUXTADHEADER
+2 SET XUXTADAUNESS="SHOWAUANESS"
+3 SET XUXTADRTNVAL=$$GAUANESSFM(XUXTADAUNESS)
+4 SET XUXTADHEADER="All Users assigned to non-existent Service/Section's:"
+5 DO SHOWA(XUXTADHEADER,XUXTADAUNESS)
+6 KILL @XUXTADAUNESS
+7 QUIT
+8 ;
+9 ;
+10 ; Get Users Assigned to Service/Section AXUXTADSSIEN and save in Array: AXUXTADSSUA
+11 ; This routine uses the "E" cross reference on file ^VA(200.
+12 ;
+13 ; AXUXTADSSIEN - A Service/Section IEN
+14 ; AXUXTADSSUA - An array to hold the results
+15 ;
+16 ; Returns with AXUXTADSSUA populated with the number of users assigned to AXUXTADSSIEN
+17 ; and populated with the user IEN's that are assigned to AXUXTADSSIEN
+18 ;
+19 ; S XUXTADSSUA="SSU"
+20 ; W $$GSSUX^XUXTADAPI2(1041,XUXTADSSUA)
GSSUX(AXUXTADSSIEN,AXUXTADSSUA) ;
+1 NEW XUXTADSSIEN,XUXTADSSUA,XUXTADUIEN,XUXTADRTNVAL
+2 SET XUXTADRTNVAL=1
+3 SET XUXTADSSIEN=+$GET(AXUXTADSSIEN)
+4 IF (XUXTADSSIEN'>0)!('$DATA(^DIC(49,XUXTADSSIEN)))
Begin DoDot:1
+5 SET XUXTADRTNVAL="0^Service/Section IEN "_XUXTADSSIEN_" is not valid"
End DoDot:1
GOTO GSSUXDN
+6 SET XUXTADSSUA=$GET(AXUXTADSSUA)
+7 IF $LENGTH(XUXTADSSUA)'>0
Begin DoDot:1
+8 SET XUXTADRTNVAL="0^Results array AXUXTADSSUA is not valid"
End DoDot:1
GOTO GSSUXDN
+9 SET @XUXTADSSUA=0
+10 SET XUXTADUIEN=0
+11 FOR
SET XUXTADUIEN=$ORDER(^VA(200,"E",XUXTADSSIEN,XUXTADUIEN))
if 'XUXTADUIEN
QUIT
Begin DoDot:1
+12 SET @XUXTADSSUA=@XUXTADSSUA+1
SET @XUXTADSSUA@(@XUXTADSSUA)=XUXTADUIEN
End DoDot:1
+13 SET XUXTADRTNVAL=@XUXTADSSUA
GSSUXDN ;
+1 QUIT XUXTADRTNVAL
+2 ;
+3 ;
+4 ; Get Users Assigned to Service/Section AXUXTADSSIEN and save in Array: AXUXTADSSUA
+5 ; This routine uses the "E" cross reference on file ^VA(200.
+6 ;
+7 ; AXUXTADSSIEN - A Service/Section IEN
+8 ; AXUXTADSSUA - An array to hold the results
+9 ;
+10 ; Returns the number of users assigned to AXUXTADSSIEN and AXUXTADSSUA populated with
+11 ; the user IEN's that are assigned to AXUXTADSSIEN
+12 ;
+13 ;
+14 ; Uses Database Server API
+15 ; LIST^DIC(file[,iens][,fields][,flags][,number][,[.]from][,[.]part][,index][,[.]screen][,identifier][,target_root][,msg_root])
+16 ;
+17 ; S XUXTADSSUA="SSU"
+18 ; W $$GSSUXFM^XUXTADAPI2(1041,XUXTADSSUA)
GSSUXFM(AXUXTADSSIEN,AXUXTADSSUA) ;
+1 NEW XUXTADSSIEN,XUXTADSSUA,XUXTADSSIA,XUXTADRTNVAL
+2 NEW FILE,FIELDS,FLAGS,FROM,PART,INDEX,TROOT
+3 IF '$DATA(VERBOSE)
NEW VERBOSE
SET VERBOSE=0
+4 ;I VERBOSE W !,"GSSUXFM^XUXTADAPI2(",$G(AXUXTADSSIEN),",",$G(AXUXTADSSUA),") Called"
+5 ;I VERBOSE W !,"Get Users Assigned to Service/Section ",$G(AXUXTADSSIEN)
+6 SET XUXTADRTNVAL=1
SET TROOT="GSSUXFMFMD"
SET XUXTADSSIA="GSSUXFMSSI"
+7 SET XUXTADSSIEN=+$GET(AXUXTADSSIEN)
+8 ; Verify that the SS IEN passed in is valid
+9 IF (XUXTADSSIEN'>0)
Begin DoDot:1
+10 SET XUXTADRTNVAL="0^Service/Section IEN "_XUXTADSSIEN_" is not valid"
End DoDot:1
GOTO GSSUXFMDN
+11 SET XUXTADSSUA=$GET(AXUXTADSSUA)
+12 IF $LENGTH(XUXTADSSUA)'>0
Begin DoDot:1
+13 SET XUXTADRTNVAL="0^Results array AXUXTADSSUA is not valid"
End DoDot:1
GOTO GSSUXFMDN
+14 KILL @XUXTADSSUA
+15 SET @XUXTADSSUA=0
+16 SET FILE=200
SET FIELDS="@"
SET FLAGS="I"
SET FROM=XUXTADSSIEN-1
SET PART=XUXTADSSIEN
SET INDEX="E"
+17 DO LIST(FILE,,FIELDS,FLAGS,,FROM,PART,INDEX,,,TROOT)
+18 SET XUXTADRTNVAL=0
+19 IF $DATA(@TROOT@("DILIST",0))&$DATA(@TROOT@("DILIST",2))
Begin DoDot:1
+20 ;I VERBOSE W ! ZW @TROOT
+21 MERGE @XUXTADSSUA=@TROOT@("DILIST",2)
+22 SET @XUXTADSSUA=$PIECE(@TROOT@("DILIST",0),U)
End DoDot:1
+23 SET XUXTADRTNVAL=@XUXTADSSUA
GSSUXFMDN ;
+1 ;I VERBOSE W !,"GSSUXFM^XUXTADAPI2 Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADSSUA
+2 KILL @TROOT
+3 QUIT XUXTADRTNVAL
+4 ;
+5 ;
+6 ; Show All Users Assigned to Service/Section AXUXTADSSIEN
+7 ;
+8 ; S AXUXTADSSIEN=1029
+9 ; D SHOWAUASS^XUXTADAPI2(AXUXTADSSIEN)
SHOWAUASS(AXUXTADSSIEN) ;
+1 NEW XUXTADAUASS,XUXTADRTNVAL,XUXTADHEADER
+2 SET XUXTADAUASS="SHOWAUASS"
+3 SET XUXTADRTNVAL=$$GSSUXFM(AXUXTADSSIEN,XUXTADAUASS)
+4 IF +XUXTADRTNVAL=0
SET @XUXTADAUASS=$PIECE(XUXTADRTNVAL,"^",2)
+5 WRITE "XUXTADRTNVAL: ",XUXTADRTNVAL