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
;
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HXUXTADAPI3 16697 printed Sep 23, 2025@19:50:32 Page 2
XUXTADAPI3 ;SLC/JLA - Service/Section Edit API's ; NOV 27, 2024@12:30
+1 ;;8.0;KERNEL;**807**;Jan 30, 2024;Build 56;
+2 ;
+3 ;
+4 ; External API'S
GSSCDCR(AXUXTADSSIEN) QUIT $$GSSCDCR^XUXTADAPI($GET(AXUXTADSSIEN))
GSSCDCRFM(AXUXTADSSIEN) QUIT $$GSSCDCRFM^XUXTADAPI($GET(AXUXTADSSIEN))
GASSINFM(AXUXTADSSIA) DO GASSINFM^XUXTADAPI($GET(AXUXTADSSIA))
QUIT
GAUSSXFM(AXUXTADAUSSA) QUIT $$GAUSSXFM^XUXTADAPI2($GET(AXUXTADAUSSA))
SHOWA(AXUXTADHEADER,ANXUXTADARRAY) DO SHOWA^XUXTADAPI($GET(AXUXTADHEADER),$GET(ANXUXTADARRAY))
QUIT
+1 ;
+2 ;
+3 ; API's available to show data:
+4 ; D SHOWAROSS^XUXTADAPI3() - Show All Re-opened Service/Sections
+5 ; D SHOWACSS^XUXTADAPI3() - Show All Closed Service/Sections
+6 ; D SHOWACSSNU^XUXTADAPI3() - Show All Closed Service/Sections with No Users Assigned
+7 ; D SHOWACSSU^XUXTADAPI3() - Show All Closed Service/Sections with Users Assigned
+8 ; D SHOWAOSS^XUXTADAPI3() - Show All Open Service/Sections
+9 ; D SHOWAOSSNU^XUXTADAPI3() - Show All Open Service/Sections with No Users Assigned
+10 ; D SHOWAOSSU^XUXTADAPI3() - Show All Open Service/Sections with Users Assigned
+11 ;
+12 ;
+13 ; Get All Closed Service/Section's and save in Array: AXUXTADSSCA
+14 ;
+15 ; AXUXTADSSCA - An array to hold all Service/Section that are Closed
+16 ;
+17 ; Returns AXUXTADSSCA populated with the Service/Section that are Closed
+18 ;
+19 ; S XUXTADSSCA="SSC"
+20 ; W $$GACSS^XUXTADAPI3(XUXTADSSCA)
GACSS(AXUXTADSSCA) ;
+1 NEW XUXTADSSCA,XUXTADSSIEN,XUXTADCDCR,XUXTADCDC,XUXTADCDR,XUXTADRTNVAL
+2 IF '$DATA(VERBOSE)
NEW VERBOSE
SET VERBOSE=0
+3 ;I VERBOSE W !,"GACSS^XUXTADAPI3(",$G(AXUXTADSSCA),") Called"
+4 ;I VERBOSE W !,"Get all Closed Service/Section's"
+5 SET XUXTADSSCA=$GET(AXUXTADSSCA)
+6 IF $LENGTH(XUXTADSSCA)'>0
Begin DoDot:1
+7 SET XUXTADRTNVAL="-1^Results array parameter AXUXTADSSCA is not valid"
End DoDot:1
GOTO GACSSDN
+8 SET (@XUXTADSSCA,XUXTADSSIEN)=0
+9 FOR
SET XUXTADSSIEN=$ORDER(^DIC(49,XUXTADSSIEN))
if 'XUXTADSSIEN
QUIT
Begin DoDot:1
+10 ; Get the current Date Closed record
+11 SET XUXTADCDCR=$$GSSCDCR(XUXTADSSIEN)
+12 ; If there is no Date Closed record then the Service/Section is Open
+13 IF $LENGTH(XUXTADCDCR)=0
QUIT
+14 SET XUXTADCDR=$PIECE(XUXTADCDCR,"^",2)
+15 ; If there is a Date Re-opened field then the Service/Section is Open
+16 IF $LENGTH(XUXTADCDR)>0
QUIT
+17 ; If we are here, the Service/Section is Closed
+18 SET XUXTADCDC=$PIECE(XUXTADCDCR,"^",1)
+19 SET @XUXTADSSCA=@XUXTADSSCA+1
+20 SET @XUXTADSSCA@(XUXTADSSIEN)=XUXTADCDC
End DoDot:1
+21 SET XUXTADRTNVAL=@XUXTADSSCA
GACSSDN ;
+1 ;I VERBOSE W !,"GACSS^XUXTADAPI3 Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADSSCA
+2 QUIT XUXTADRTNVAL
+3 ;
+4 ;
+5 ; Get All Closed Service/Section's and save in Array: AXUXTADSSCA
+6 ;
+7 ; AXUXTADSSCA - An array to hold all Service/Section that are Closed
+8 ;
+9 ; Returns AXUXTADSSCA populated with the Service/Section that are Closed
+10 ;
+11 ; S XUXTADSSCA="SSC"
+12 ; W $$GACSSFM^XUXTADAPI3(XUXTADSSCA)
GACSSFM(AXUXTADSSCA) ;
+1 NEW XUXTADSSCA,XUXTADSSIA,XUXTADSSIEN,XUXTADCDCR,XUXTADCDC,XUXTADCDR,XUXTADRTNVAL
+2 IF '$DATA(VERBOSE)
NEW VERBOSE
SET VERBOSE=0
+3 ;I VERBOSE W !,"GACSSFM^XUXTADAPI3(",$G(AXUXTADSSCA),") Called"
+4 ;I VERBOSE W !,"Get all Closed Service/Section's"
+5 SET XUXTADSSCA=$GET(AXUXTADSSCA)
SET XUXTADSSIA="GACSSFMSSI"
+6 IF $LENGTH(XUXTADSSCA)'>0
Begin DoDot:1
+7 SET XUXTADRTNVAL="-1^Results array parameter AXUXTADSSCA is not valid"
End DoDot:1
GOTO GACSSFMDN
+8 SET (@XUXTADSSCA,XUXTADSSIEN)=0
+9 ; Get All Service/Section IEN records
+10 ;D GASSIFM(XUXTADSSIA)
+11 ; Get All Service/Section IEN=Name records
+12 DO GASSINFM(XUXTADSSIA)
+13 KILL @XUXTADSSCA
+14 SET @XUXTADSSCA=0
+15 FOR
SET XUXTADSSIEN=$ORDER(@XUXTADSSIA@(XUXTADSSIEN))
if 'XUXTADSSIEN
QUIT
Begin DoDot:1
+16 ; Get the current Date Closed record for this Service/Section
+17 SET XUXTADCDCR=$$GSSCDCRFM(XUXTADSSIEN)
+18 ; If there is no Date Closed record then the Service/Section is Open
+19 IF $LENGTH(XUXTADCDCR)=0
QUIT
+20 SET XUXTADCDR=$PIECE(XUXTADCDCR,"^",2)
+21 ; If there is a Date Re-opened field then the Service/Section is Open
+22 IF $LENGTH(XUXTADCDR)>0
QUIT
+23 ; If we are here, the Service/Section is Closed
+24 SET XUXTADCDC=$PIECE(XUXTADCDCR,"^",1)
+25 SET @XUXTADSSCA=@XUXTADSSCA+1
+26 ;S @XUXTADSSCA@(XUXTADSSIEN)=XUXTADCDC
+27 SET @XUXTADSSCA@(XUXTADSSIEN)=@XUXTADSSIA@(XUXTADSSIEN)_"^"_XUXTADCDC
End DoDot:1
+28 SET XUXTADRTNVAL=@XUXTADSSCA
GACSSFMDN ;
+1 ;I VERBOSE W !,"GACSSFM^XUXTADAPI3 Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADSSCA
+2 KILL @XUXTADSSIA
+3 QUIT XUXTADRTNVAL
+4 ;
+5 ;
+6 ; Get All Open Service/Section's and save in Array: AXUXTADSSCA
+7 ;
+8 ; AXUXTADSSCA - An array to hold all Service/Section that are Open
+9 ;
+10 ; Returns AXUXTADSSCA populated with the Service/Section that are Open
+11 ; along with a RE-OPENED DATE if one exists
+12 ;
+13 ; S XUXTADSSOA="SSO"
+14 ; W $$GAOSS^XUXTADAPI3(XUXTADSSOA)
GAOSS(AXUXTADSSOA) ;
+1 NEW XUXTADSSOA,XUXTADSSIEN,XUXTADCDCR,XUXTADCDR,XUXTADRTNVAL
+2 IF '$DATA(VERBOSE)
NEW VERBOSE
SET VERBOSE=0
+3 ;I VERBOSE W !,"GAOSS^XUXTADAPI3(",$G(AXUXTADSSOA),") Called"
+4 ;I VERBOSE W !,"Get all Open Service/Section's"
+5 SET XUXTADSSOA=$GET(AXUXTADSSOA)
+6 IF $LENGTH(XUXTADSSOA)'>0
Begin DoDot:1
+7 SET XUXTADRTNVAL="-1^Results array parameter AXUXTADSSCA is not valid"
End DoDot:1
GOTO GAOSSDN
+8 SET (@XUXTADSSOA,XUXTADSSIEN)=0
+9 FOR
SET XUXTADSSIEN=$ORDER(^DIC(49,XUXTADSSIEN))
if 'XUXTADSSIEN
QUIT
Begin DoDot:1
+10 ; Get the current Date Closed record
+11 SET XUXTADCDCR=$$GSSCDCR(XUXTADSSIEN)
+12 SET XUXTADCDR=$PIECE(XUXTADCDCR,"^",2)
+13 ; If there is no Date Closed record OR If the Date Re-opened field has a value
+14 ; then the Service/Section is Open
+15 IF ($LENGTH(XUXTADCDCR)=0)!($LENGTH(XUXTADCDR)>0)
Begin DoDot:2
+16 SET @XUXTADSSOA=@XUXTADSSOA+1
+17 SET @XUXTADSSOA@(XUXTADSSIEN)=XUXTADCDR
End DoDot:2
End DoDot:1
+18 SET XUXTADRTNVAL=@XUXTADSSOA
GAOSSDN ;
+1 ;I VERBOSE W !,"GAOSS^XUXTADAPI3 Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADSSOA
+2 QUIT XUXTADRTNVAL
+3 ;
+4 ;
+5 ; Get All Open Service/Section's and save in Array: AXUXTADSSCA
+6 ;
+7 ; AXUXTADSSCA - An array to hold all Service/Section that are Open
+8 ;
+9 ; Returns AXUXTADSSCA populated with the Service/Section that are Open
+10 ; along with a RE-OPENED DATE if one exists
+11 ;
+12 ; S XUXTADSSOA="SSO"
+13 ; W $$GAOSSFM^XUXTADAPI3(XUXTADSSOA)
GAOSSFM(AXUXTADSSOA) ;
+1 NEW XUXTADSSOA,XUXTADSSIA,XUXTADSSIEN,XUXTADCDCR,XUXTADCDR,XUXTADRTNVAL
+2 IF '$DATA(VERBOSE)
NEW VERBOSE
SET VERBOSE=0
+3 ;I VERBOSE W !,"GAOSSFM^XUXTADAPI3(",$G(AXUXTADSSOA),") Called"
+4 ;I VERBOSE W !,"Get all Open Service/Section's"
+5 SET XUXTADSSOA=$GET(AXUXTADSSOA)
SET XUXTADSSIA="GAOSSFMSSI"
+6 IF $LENGTH(XUXTADSSOA)'>0
Begin DoDot:1
+7 SET XUXTADRTNVAL="-1^Results array parameter AXUXTADSSCA is not valid"
End DoDot:1
GOTO GAOSSFMDN
+8 SET (@XUXTADSSOA,XUXTADSSIEN)=0
+9 ; Get All Service/Section IEN records
+10 ;D GASSIFM(XUXTADSSIA)
+11 ; Get All Service/Section IEN=Name records
+12 DO GASSINFM(XUXTADSSIA)
+13 KILL @XUXTADSSOA
+14 SET @XUXTADSSOA=0
+15 FOR
SET XUXTADSSIEN=$ORDER(@XUXTADSSIA@(XUXTADSSIEN))
if 'XUXTADSSIEN
QUIT
Begin DoDot:1
+16 ; Get the current Date Closed record for this Service/Section
+17 SET XUXTADCDCR=$$GSSCDCRFM(XUXTADSSIEN)
+18 SET XUXTADCDR=$PIECE(XUXTADCDCR,"^",2)
+19 ; If there is no Date Closed record OR If the Date Re-opened field has a value
+20 ; then the Service/Section is Open
+21 IF ($LENGTH(XUXTADCDCR)=0)!($LENGTH(XUXTADCDR)>0)
Begin DoDot:2
+22 SET @XUXTADSSOA=@XUXTADSSOA+1
+23 ;S @XUXTADSSOA@(XUXTADSSIEN)=XUXTADCDR
+24 SET @XUXTADSSOA@(XUXTADSSIEN)=@XUXTADSSIA@(XUXTADSSIEN)_"^"_XUXTADCDR
End DoDot:2
End DoDot:1
+25 SET XUXTADRTNVAL=@XUXTADSSOA
GAOSSFMDN ;
+1 ;I VERBOSE W !,"GAOSSFM^XUXTADAPI3 Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADSSOA
+2 KILL @XUXTADSSIA
+3 QUIT XUXTADRTNVAL
+4 ;
+5 ;
+6 ; Get All Re-opened Service/Section's and save in Array: AXUXTADSSCA
+7 ;
+8 ; AXUXTADSSCA - An array to hold all Service/Section that have been Re-opened
+9 ;
+10 ; Returns AXUXTADSSCA populated with the Service/Section that have been Re-opened
+11 ;
+12 ; S XUXTADSSROA="SSRO"
+13 ; W $$GAROSS^XUXTADAPI3(XUXTADSSROA)
GAROSS(AXUXTADSSROA) ;
+1 NEW XUXTADSSROA,XUXTADSSIEN,XUXTADCDCR,XUXTADCDR,XUXTADRTNVAL
+2 IF '$DATA(VERBOSE)
NEW VERBOSE
SET VERBOSE=0
+3 ;I VERBOSE W !,"GAROSS^XUXTADAPI3(",$G(AXUXTADSSROA),") Called"
+4 ;I VERBOSE W !,"Get all Re-opened Service/Section's"
+5 SET XUXTADSSROA=$GET(AXUXTADSSROA)
+6 IF $LENGTH(XUXTADSSROA)'>0
Begin DoDot:1
+7 SET XUXTADRTNVAL="-1^Results array parameter AXUXTADSSCA is not valid"
End DoDot:1
GOTO GAROSSDN
+8 SET (@XUXTADSSROA,XUXTADSSIEN)=0
+9 FOR
SET XUXTADSSIEN=$ORDER(^DIC(49,XUXTADSSIEN))
if 'XUXTADSSIEN
QUIT
Begin DoDot:1
+10 ; Get the current Date Closed record
+11 SET XUXTADCDCR=$$GSSCDCR(XUXTADSSIEN)
+12 SET XUXTADCDR=$PIECE(XUXTADCDCR,"^",2)
+13 ; If there is a Date Closed record AND If the Date Re-opened field has a value
+14 ; then the Service/Section is Open
+15 IF ($LENGTH(XUXTADCDCR)>0)&($LENGTH(XUXTADCDR)>0)
Begin DoDot:2
+16 SET @XUXTADSSROA=@XUXTADSSROA+1
+17 SET @XUXTADSSROA@(XUXTADSSIEN)=XUXTADCDR
End DoDot:2
End DoDot:1
+18 SET XUXTADRTNVAL=@XUXTADSSROA
GAROSSDN ;
+1 ;I VERBOSE W !,"GAROSS^XUXTADAPI3 Exiting, Response: ",XUXTADRTNVAL,! ZW @XUXTADSSROA
+2 QUIT XUXTADRTNVAL
+3 ;
+4 ;
+5 ; Get All Re-opened Service/Section's and save in Array: AXUXTADSSCA
+6 ;
+7 ; AXUXTADSSCA - An array to hold all Service/Section that have been Re-opened
+8 ;
+9 ; Returns AXUXTADSSCA populated with the Service/Section that have been Re-opened
+10 ;
+11 ; S XUXTADSSROA="SSRO"
+12 ; W $$GAROSSFM^XUXTADAPI3(XUXTADSSROA)
GAROSSFM(AXUXTADSSROA) ;
+1 NEW XUXTADSSROA,XUXTADSSIA,XUXTADSSIEN,XUXTADCDCR,XUXTADCDR,XUXTADRTNVAL
+2 IF '$DATA(VERBOSE)
NEW VERBOSE
SET VERBOSE=0
+3 IF VERBOSE
WRITE !,"GAROSSFM^XUXTADAPI3(",$GET(AXUXTADSSROA),") Called"
+4 IF VERBOSE
WRITE !,"Get all Re-opened Service/Section's"
+5 SET XUXTADSSROA=$GET(AXUXTADSSROA)
SET XUXTADSSIA="GAROSSFMSSI"
+6 IF $LENGTH(XUXTADSSROA)'>0
Begin DoDot:1
+7 SET XUXTADRTNVAL="-1^Results array parameter AXUXTADSSCA is not valid"
End DoDot:1
GOTO GAROSSFMDN
+8 SET (@XUXTADSSROA,XUXTADSSIEN)=0
+9 ; Get All Service/Section IEN records
+10 ;D GASSIFM(XUXTADSSIA)
+11 ; Get All Service/Section IEN=Name records
+12 DO GASSINFM(XUXTADSSIA)
+13 KILL @XUXTADSSROA
+14 SET @XUXTADSSROA=0
+15 FOR
SET XUXTADSSIEN=$ORDER(@XUXTADSSIA@(XUXTADSSIEN))
if 'XUXTADSSIEN
QUIT
Begin DoDot:1
+16 ; Get the current Date Closed record for this Service/Section
+17 SET XUXTADCDCR=$$GSSCDCRFM(XUXTADSSIEN)
+18 SET XUXTADCDR=$PIECE(XUXTADCDCR,"^",2)
+19 ; If there is a Date Closed record AND If the Date Re-opened field has a value
+20 ; then the Service/Section has been Re-opened
+21 IF ($LENGTH(XUXTADCDCR)>0)&($LENGTH(XUXTADCDR)>0)
Begin DoDot:2
+22 SET @XUXTADSSROA=@XUXTADSSROA+1
+23 ;S @XUXTADSSROA@(XUXTADSSIEN)=XUXTADCDR
+24 SET @XUXTADSSROA@(XUXTADSSIEN)=@XUXTADSSIA@(XUXTADSSIEN)_"^"_XUXTADCDR
End DoDot:2
End DoDot:1
+25 SET XUXTADRTNVAL=@XUXTADSSROA
GAROSSFMDN ;
+1 IF VERBOSE
WRITE !,"GAROSSFM^XUXTADAPI3 Exiting, Response: ",XUXTADRTNVAL,!