VistA-FOIAVistA/r/AUTOMATED_INFO_COLLECTION_S.../IBDFFV1.m

50 lines
1.5 KiB
Mathematica

IBDFFV1 ;ALB/CMR - AICS FORM VALIDATION ; NOV 24,1995
;;3.0;AUTOMATED INFO COLLECTION SYS;;APR 24, 1997
;
; -- entry point from IBDFFV
; -- called to set up ^TMP with forms to be printed
;
Q:('$D(VAUTD)&('$D(VAUTG))&('$D(VAUTC))&('$D(VAUTF)))!('$D(SORT))
D FORM:+SORT=1,CLINIC:+SORT=2,GROUP:+SORT=3,DIV:+SORT=4
Q
FORM ; -- $O through forms
;
N FRM,FORM
Q:'$D(VAUTF)
S FRM=0 F S FRM=$S(VAUTF:$O(^IBE(357,FRM)),1:$O(VAUTF(FRM))) Q:'FRM S FORM=$P($G(^IBE(357,FRM,0)),U) I FORM]"" S ^TMP($J,"IBFV","F",FORM,FRM)=""
Q
CLINIC ; -- $O through clinics
;
N CLIN
Q:'$D(VAUTC)
S CLIN=0 F S CLIN=$S(VAUTC:$O(^SD(409.95,"B",CLIN)),1:$O(VAUTC(CLIN))) Q:'CLIN D CLIN
Q
GROUP ; -- $O through groups
;
N GRP,GROUP,CLIN
Q:'$D(VAUTG)
S GRP=0 F S GRP=$S(VAUTG:$O(^IBD(357.99,GRP)),1:$O(VAUTG(GRP))) Q:'GRP D
.S GROUP=$P($G(^IBD(357.99,GRP,0)),U)
.; -- find all clinics associated with group
.S CLIN=0 F S CLIN=$O(^IBD(357.99,GRP,10,"B",CLIN)) Q:'CLIN D CLIN
Q
DIV ; -- $O through divisions
;
N CLIN,DIV
Q:'$D(VAUTD)
S CLIN="" F S CLIN=$O(^SD(409.95,"B",CLIN)) Q:'CLIN D
.S DIV=$P($G(^SC(CLIN,0)),U,15) Q:'DIV
.; -- quit if division for clinic is not a chosen division
.I 'VAUTD,'$D(VAUTD(DIV)) Q
.S:+DIV DIV=$P($G(^DG(40.8,+DIV,0)),U) Q:DIV']""
.D CLIN
Q
CLIN ; -- set up TMP nodes
N SETUP,NAME
S SETUP=$O(^SD(409.95,"B",CLIN,"")) Q:'SETUP
S NAME=$P($G(^SC(CLIN,0)),U) Q:NAME=""
I +SORT=2 S ^TMP($J,"IBFV","C",NAME,SETUP)="" Q
I +SORT=3 S ^TMP($J,"IBFV","G",GROUP,NAME,SETUP)="" Q
I +SORT=4 S ^TMP($J,"IBFV","D",DIV,NAME,SETUP)="" Q
Q