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

SDES2GETCLNGRPS.m

Go to the documentation of this file.
SDES2GETCLNGRPS ;ALB/AGW - VISTA SCHEDULING RPCS TO GET CLINIC GROUPS; JUN 17,2025
 ;;5.3;Scheduling;**949**;Aug 13, 1993;Build 4
 ;;Per VHA Directive 6402, this routine should not be modified
 ;
 ; Reference to DUZ^XUP is supported by IA #7487
 ;
 Q
 ;
 ; INPUT
 ; SDCONTEXT Array
 ;
 ; SDINPUT("STATION NUMBER") - station number (File 4) for SDES2 GET CLINIC GRPS BY STN
 ; SDINPUT("CLINIC IEN") - clinic IEN (File 44) for SDES2 GET CLINIC GRPS BY CLN IEN
 ;
GETCLNGRPSSTA(JSONRETURN,SDCONTEXT,SDINPUT) ; SDES2 GET CLINIC GRPS BY STN
 N STATION,INST,ERRORS,CNT,DATA,CLINICIEN,CLNSTA,RETURNLIST,RETURNCLNGROUP
 S DATA=$NA(^TMP("SDES2GETCLNSTA",$J,"DATA")) K @DATA
 S JSONRETURN=$NA(^TMP("SDES2GETCLNSTA",$J,"JSON")) K @JSONRETURN
 D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
 I $D(ERRORS) S ERRORS("ClinicGroups",1)="" D ENCODE^XLFJSON("ERRORS",.JSONRETURN) Q
 I $G(SDCONTEXT("USER DUZ"))'="" N DUZ D DUZ^XUP(SDCONTEXT("USER DUZ"))
 S STATION=$G(SDINPUT("STATION NUMBER"))
 I STATION="" D ERRLOG^SDES2JSON(.ERRORS,196)
 S INST=$$IEN^XUAF4(STATION)
 I STATION]"",'INST D ERRLOG^SDES2JSON(.ERRORS,197)
 I $D(ERRORS) S ERRORS("ClinicGroups",1)="" D ENCODE^XLFJSON("ERRORS",.JSONRETURN) Q
 I $L(STATION>3) D
 . S RETURNLIST(STATION)=1
 . D BUILDLIST(.RETURNLIST,STATION)
 S (CLINICIEN,CNT)=0
 F  S CLINICIEN=$O(^SC(CLINICIEN)) Q:'CLINICIEN  D
 .Q:$$GET1^DIQ(44,CLINICIEN,2,"I")'="C"
 .S CLNSTA=$$CLINSTA(CLINICIEN) Q:CLNSTA=""
 .I $L(STATION)=3,+CLNSTA'=STATION Q
 .I $L(STATION)>3,'(+$G(RETURNLIST(CLNSTA))) Q
 .D BUILDREC(.DATA,CLINICIEN,.CNT,.RETURNCLNGROUP)
 .Q
 S:(CNT=0) @DATA@("ClinicGroups",1)=""
 D ENCODE^XLFJSON(.DATA,.JSONRETURN)
 K @DATA
 Q
 ;
GETCLNGRPSCLN(JSONRETURN,SDCONTEXT,SDINPUT) ; SDES2 GET CLN GRPS BY CLN IEN
 N ERRORS,CNT,DATA,CLINICIEN,RETURNLIST,RETURNCLNGROUP
 S DATA=$NA(^TMP("SDES2GETCLNGRPS",$J,"DATA")) K @DATA
 S JSONRETURN=$NA(^TMP("SDES2GETCLNGRPS",$J,"JSON")) K @JSONRETURN
 D VALCONTEXT^SDES2VALCONTEXT(.ERRORS,.SDCONTEXT)
 I $D(ERRORS) S ERRORS("ClinicGroups",1)="" D ENCODE^XLFJSON("ERRORS",.JSONRETURN) Q
 I $G(SDCONTEXT("USER DUZ"))'="" N DUZ D DUZ^XUP(SDCONTEXT("USER DUZ"))
 D VALCLINIEN^SDES2VAL44(.ERRORS,$G(SDINPUT("CLINIC IEN")),1)
 I $D(ERRORS) S ERRORS("ClinicGroups",1)="" D ENCODE^XLFJSON("ERRORS",.JSONRETURN) Q
 S CLINICIEN=$G(SDINPUT("CLINIC IEN"))
 I $$GET1^DIQ(44,CLINICIEN,2,"I")'="C" D  Q
 .D ERRLOG^SDES2JSON(.ERRORS,20)
 .S ERRORS("ClinicGroups",1)=""
 .D ENCODE^XLFJSON("ERRORS",.JSONRETURN)
 .Q
 S DATA=$NA(^TMP("SDES2GETCLNGRPS",$J,"DATA")) K @DATA
 S JSONRETURN=$NA(^TMP("SDES2GETCLNGRPS",$J,"JSON")) K @JSONRETURN
 S CNT=0
 D BUILDREC(.DATA,CLINICIEN,.CNT,.RETURNCLNGROUP)
 S:(CNT=0) @DATA@("ClinicGroups",1)=""
 D ENCODE^XLFJSON(.DATA,.JSONRETURN)
 K @DATA
 Q
 ;
CLINSTA(CLINICIEN) ;
 N DIV,INST,STA
 S DIV=$$GET1^DIQ(44,CLINICIEN,3.5,"I")
 S INST=$$GET1^DIQ(40.8,DIV,.07,"I")
 S STA=$$STA^XUAF4(INST)
 Q STA
 ;
BUILDLIST(RETURNLIST,STATION) ;
 N CHILDIEN,CHILDREN
 D CHILDREN^XUAF4("CHILDREN",STATION,"PARENT FACILITY")
 S CHILDIEN=""
 F  S CHILDIEN=$O(CHILDREN("C",CHILDIEN)) Q:CHILDIEN=""  D
 . S:$P(CHILDREN("C",CHILDIEN),U,2)'="" RETURNLIST($P(CHILDREN("C",CHILDIEN),U,2))=1
 Q
 ;
BUILDREC(DATA,CLINICIEN,CNT,RETURNCLNGROUP) ;
 N CLNGRPIEN,CLNRESOURCEIEN
 S CLNRESOURCEIEN=$$GETRES^SDES2UTIL1(CLINICIEN)
 Q:CLNRESOURCEIEN=""
 Q:'$D(^SDEC(409.831,CLNRESOURCEIEN))
 S CLNGRPIEN=0
 F  S CLNGRPIEN=$O(^SDEC(409.832,"AB",CLNRESOURCEIEN,CLNGRPIEN)) Q:(CLNGRPIEN="")  D
 .Q:($G(RETURNCLNGROUP(CLNGRPIEN)))
 .S CNT=(+$G(CNT))+1
 .S @DATA@("ClinicGroups",CNT,"ClinicGroupIen")=CLNGRPIEN
 .S @DATA@("ClinicGroups",CNT,"ClinicGroupName")=$$GET1^DIQ(409.832,CLNGRPIEN,.01,"E")
 .S RETURNCLNGROUP(CLNGRPIEN)=1
 .Q
 Q