AZXA ; IHS/PHXAO/TMJ - DISCLOSURE SYSTEM ;
;;2.0;RELEASE OF INFORMATION;;FEB 21, 2002
;
;
I '$D(ZTQUEUED) W !!,*7,"NO ENTRY FROM THE TOP OF ^AZXA.",!
S AZXAQ=1
Q
;----------
;----------
GETR() ;EP - Return Disclosure # from ROI DISCLOSURE record
I '$G(AZXARIEN) Q ""
Q $P($G(^AZXAREC(AZXARIEN,0)),U,2)
;----------
REFN() ;EP - Return the next Disclosure number and update control file
LOCK +^AZXAPARM(DUZ(2)):20 E W:'$D(ZTQUEUED) *7,!!," Unable to lock the ROI SITE PARAMETER entry for ",$$LOC,".",!! D EOP Q 0
S AZXAPARM=$G(^AZXAPARM(DUZ(2),0))
S X=$$ASF
S X=X_$P(AZXAPARM,U,2)
S Y=$P(AZXAPARM,U,7)+1
S X=X_$$LZERO(Y,5)
S AZXAX=X
S DIE="^AZXAPARM(",DA=DUZ(2),DR=".07////"_Y D DIE^AZXAFMC
LOCK -^AZXAPARM(DUZ(2)):20
Q AZXAX
;----------
LZERO(V,L) ;left zero fill
NEW %,I
S %=$L(V),Z=L-% F I=1:1:Z S V="0"_V
Q V
;----------
ASF() ;EP - Return ASUFAC number for current DUZ(2).
Q:'$G(DUZ(2)) ""
Q $P($G(^AUTTLOC(DUZ(2),0)),U,10)
;----------
CTR(X,Y) ;EP - Center X in a field Y wide.
Q $J("",$S($D(Y):Y,1:IOM)-$L(X)\2)_X
;----------
DIC(DIC) ;EP - File lookup.
S:'$D(DIC(0)) DIC(0)="AMQN"
D DIC^AZXAFMC
Q +Y
;----------
EOP ;EP - End of page.
Q:$E(IOST)'="C"
Q:$D(ZTQUEUED)!'(IOT="TRM")!$D(IO("S"))
NEW DIR
K DIRUT,DFOUT,DLOUT,DTOUT,DUOUT
S DIR(0)="E" D ^DIR
Q
;----------
USR() ;EP - Return name of current user from ^VA(200.
Q $S($G(DUZ):$S($D(^VA(200,DUZ,0)):$P(^(0),U),1:"UNKNOWN"),1:"DUZ UNDEFINED OR 0")
;----------
LOC() ;EP - Return location name from file 4 based on DUZ(2).
Q $S($G(DUZ(2)):$S($D(^DIC(4,DUZ(2),0)):$P(^(0),U),1:"UNKNOWN"),1:"DUZ(2) UNDEFINED OR 0")
;----------
HDR ;EP - Screen header DON'S USE ANY LONGER.
Q:$G(XQY0)=""
I '$D(IORVON) S X="IORVON;IORVOFF" D ENDR^%ZISS
S X=$P(XQY0,U,2)
S:X="FOIA Disclosure System" X="MAIN MENU"
S X=$J("",2*$L(IORVON)-1)_IORVON_X_IORVOFF
;I X="FOIA Disclosure System" S X="MAIN MENU"
W @IOF,!,$$CTR("FOIA DISCLOSURE SYSTEM"),!,$$CTR($$LOC()),!,$$CTR(X),!!
Q
;----------
LOCK(DA) ;EP - Lock the selected Disclosure.
LOCK +^AZXAREC(DA):20
E W:'$D(ZTQUEUED) *7,!!," This Document Is Currently Being Processed (Document LOCKED).",!! D EOP I 0
Q
;----------
UNLOCK(DA) ;EP - Unlock the selected Disclosure.
LOCK -^AZXAREC(DA):20
E W:'$D(ZTQUEUED) *7,!!," UNABLE TO UNLOCK DISCLOSURE. NOTIFY PROGRAMMER.",!! D EOP I 0
Q
;----------
LOGO ;EP - Print logo of main menu.
NEW A,D,I,L,N,R,V
S L=18,R=61,D=R-L+1,N=R-L-1
S I=$O(^DIC(9.4,"C","AZXA",0)),V=^DIC(9.4,I,"VERSION"),A=$O(^DIC(9.4,I,22,"B",V,0)),Y=$$FMTE^XLFDT($P(^DIC(9.4,I,22,A,0),U,2))
W @IOF,!,$$CTR($$REPEAT^XLFSTR("*",D)),!?L,"*",$$CTR("INDIAN HEALTH SERVICE",N),?R,"*",!?L,"*",$$CTR("RELEASE OF INFORMATION SYSTEM",N),?R,"*",!?L,"*",$$CTR("VERSION "_V_", "_Y,N),?R,"*",!,$$CTR($$REPEAT^XLFSTR("*",D)),!
W $$CTR($$LOC())
;Sub Menu Displays
Q:$G(XQY0)=""
I '$D(IORVON) S X="IORVON;IORVOFF" D ENDR^%ZISS
S X=$P(XQY0,U,2)
S:X="Referred Care Information System" X="MAIN MENU"
S X=$J("",2*$L(IORVON)-1)_IORVON_X_IORVOFF
W !,$$CTR(X),!
Q
;----------
SEL(S) ;EP - Select a Disclosure to edit, S is DIC("S")
NEW AZXA,AZXAY,DA,DIC
S:$D(S) DIC("S")=S
S DIC="^AZXAREC(",Y=$$DIC(.DIC)
I Y<1 Q Y
S DA=+Y D LOCK(DA) E Q 0
S AZXA=DA
I '$D(ZTQUEUED) D
.S DIC="^AZXAREC(" D DIQ^AZXAFMC
.S DA=$O(^AZXACOM("AD",AZXA,0)) I DA S DIC="^AZXACOM(" D DIQ^AZXAFMC
.F AZXAY=0:0 S AZXAY=$O(^AZXADX("AD",AZXA,AZXAY)) Q:'AZXAY S DA=AZXAY,DIC="^AZXADX(" D DIQ^AZXAFMC
.F AZXAY=0:0 S AZXAY=$O(^AZXAPX("AD",AZXA,AZXAY)) Q:'AZXAY S DA=AZXAY,DIC="^AZXAPX(" D DIQ^AZXAFMC
.D EOP
.Q
Q AZXA
;----------
DEV ; EP - SELECT OUTPUT DEVICE
S AZXAQ=0
S %ZIS="PQ" D ^%ZIS
S:POP AZXAQ=1
Q
;----------
PAUSE ; EP - PAUSE FOR USER
Q:$E(IOST)'="C"
Q:$D(ZTQUEUED)!'(IOT="TRM")!$D(IO("S"))
S DIR(0)="E",DIR("A")="Press any key to continue" D ^DIR K DIR
W !
Q
;----------
CONF ; EP - CONFIDENTIAL CLIENT DATA HEADER
W !,$$CTR("*** CONFIDENTIAL PATIENT INFORMATION ***"),!
Q
;----------
TOFAC(R) ; EP - RETURN APPROPRIATE
; 'TO PRIMARY VENDOR/TO IHS FACILITY/TO OTHER PROVIDER'
; R = ROI DISCLOSURE IEN
NEW X,Y
S Y=""
G:'$G(R) TOFACX
G:'$D(^AZXAREC(R,0)) TOFACX
S X=^AZXAREC(R,0)
S Y=$P(X,U,8) I Y S Y=$P(^DIC(4,Y,0),U) G TOFACX
S Y=$P(X,U,7) I Y S Y=$P(^AUTTVNDR(Y,0),U)
I Y="OTHER PROVIDER (NON-CHS)" S Y=$P(X,U,9) I Y S Y=$P(^AZXALPRV(Y,0),U)
TOFACX ;
Q Y
AZXA ; IHS/PHXAO/TMJ - DISCLOSURE SYSTEM ;
+1 ;;2.0;RELEASE OF INFORMATION;;FEB 21, 2002
+2 ;
+3 ;
+4 IF '$DATA(ZTQUEUED)
WRITE !!,*7,"NO ENTRY FROM THE TOP OF ^AZXA.",!
+5 SET AZXAQ=1
+6 QUIT
+7 ;----------
+8 ;----------
GETR() ;EP - Return Disclosure # from ROI DISCLOSURE record
+1 IF '$GET(AZXARIEN)
QUIT ""
+2 QUIT $PIECE($GET(^AZXAREC(AZXARIEN,0)),U,2)
+3 ;----------
REFN() ;EP - Return the next Disclosure number and update control file
+1 LOCK +^AZXAPARM(DUZ(2)):20
IF '$TEST
IF '$DATA(ZTQUEUED)
WRITE *7,!!," Unable to lock the ROI SITE PARAMETER entry for ",$$LOC,".",!!
DO EOP
QUIT 0
+2 SET AZXAPARM=$GET(^AZXAPARM(DUZ(2),0))
+3 SET X=$$ASF
+4 SET X=X_$PIECE(AZXAPARM,U,2)
+5 SET Y=$PIECE(AZXAPARM,U,7)+1
+6 SET X=X_$$LZERO(Y,5)
+7 SET AZXAX=X
+8 SET DIE="^AZXAPARM("
SET DA=DUZ(2)
SET DR=".07////"_Y
DO DIE^AZXAFMC
+9 LOCK -^AZXAPARM(DUZ(2)):20
+10 QUIT AZXAX
+11 ;----------
LZERO(V,L) ;left zero fill
+1 NEW %,I
+2 SET %=$LENGTH(V)
SET Z=L-%
FOR I=1:1:Z
SET V="0"_V
+3 QUIT V
+4 ;----------
ASF() ;EP - Return ASUFAC number for current DUZ(2).
+1 IF '$GET(DUZ(2))
QUIT ""
+2 QUIT $PIECE($GET(^AUTTLOC(DUZ(2),0)),U,10)
+3 ;----------
CTR(X,Y) ;EP - Center X in a field Y wide.
+1 QUIT $JUSTIFY("",$SELECT($DATA(Y):Y,1:IOM)-$LENGTH(X)\2)_X
+2 ;----------
DIC(DIC) ;EP - File lookup.
+1 IF '$DATA(DIC(0))
SET DIC(0)="AMQN"
+2 DO DIC^AZXAFMC
+3 QUIT +Y
+4 ;----------
EOP ;EP - End of page.
+1 IF $EXTRACT(IOST)'="C"
QUIT
+2 IF $DATA(ZTQUEUED)!'(IOT="TRM")!$DATA(IO("S"))
QUIT
+3 NEW DIR
+4 KILL DIRUT,DFOUT,DLOUT,DTOUT,DUOUT
+5 SET DIR(0)="E"
DO ^DIR
+6 QUIT
+7 ;----------
USR() ;EP - Return name of current user from ^VA(200.
+1 QUIT $SELECT($GET(DUZ):$SELECT($DATA(^VA(200,DUZ,0)):$PIECE(^(0),U),1:"UNKNOWN"),1:"DUZ UNDEFINED OR 0")
+2 ;----------
LOC() ;EP - Return location name from file 4 based on DUZ(2).
+1 QUIT $SELECT($GET(DUZ(2)):$SELECT($DATA(^DIC(4,DUZ(2),0)):$PIECE(^(0),U),1:"UNKNOWN"),1:"DUZ(2) UNDEFINED OR 0")
+2 ;----------
HDR ;EP - Screen header DON'S USE ANY LONGER.
+1 IF $GET(XQY0)=""
QUIT
+2 IF '$DATA(IORVON)
SET X="IORVON;IORVOFF"
DO ENDR^%ZISS
+3 SET X=$PIECE(XQY0,U,2)
+4 IF X="FOIA Disclosure System"
SET X="MAIN MENU"
+5 SET X=$JUSTIFY("",2*$LENGTH(IORVON)-1)_IORVON_X_IORVOFF
+6 ;I X="FOIA Disclosure System" S X="MAIN MENU"
+7 WRITE @IOF,!,$$CTR("FOIA DISCLOSURE SYSTEM"),!,$$CTR($$LOC()),!,$$CTR(X),!!
+8 QUIT
+9 ;----------
LOCK(DA) ;EP - Lock the selected Disclosure.
+1 LOCK +^AZXAREC(DA):20
+2 IF '$TEST
IF '$DATA(ZTQUEUED)
WRITE *7,!!," This Document Is Currently Being Processed (Document LOCKED).",!!
DO EOP
IF 0
+3 QUIT
+4 ;----------
UNLOCK(DA) ;EP - Unlock the selected Disclosure.
+1 LOCK -^AZXAREC(DA):20
+2 IF '$TEST
IF '$DATA(ZTQUEUED)
WRITE *7,!!," UNABLE TO UNLOCK DISCLOSURE. NOTIFY PROGRAMMER.",!!
DO EOP
IF 0
+3 QUIT
+4 ;----------
LOGO ;EP - Print logo of main menu.
+1 NEW A,D,I,L,N,R,V
+2 SET L=18
SET R=61
SET D=R-L+1
SET N=R-L-1
+3 SET I=$ORDER(^DIC(9.4,"C","AZXA",0))
SET V=^DIC(9.4,I,"VERSION")
SET A=$ORDER(^DIC(9.4,I,22,"B",V,0))
SET Y=$$FMTE^XLFDT($PIECE(^DIC(9.4,I,22,A,0),U,2))
+4 WRITE @IOF,!,$$CTR($$REPEAT^XLFSTR("*",D)),!?L,"*",$$CTR("INDIAN HEALTH SERVICE",N),?R,"*",!?L,"*",$$CTR("RELEASE OF INFORMATION SYSTEM",N),?R,"*",!?L,"*",$$CTR("VERSION "_V_", "_Y,N),?R,"*",!,$$CTR($$REPEAT^XLFSTR("*",D)),!
+5 WRITE $$CTR($$LOC())
+6 ;Sub Menu Displays
+7 IF $GET(XQY0)=""
QUIT
+8 IF '$DATA(IORVON)
SET X="IORVON;IORVOFF"
DO ENDR^%ZISS
+9 SET X=$PIECE(XQY0,U,2)
+10 IF X="Referred Care Information System"
SET X="MAIN MENU"
+11 SET X=$JUSTIFY("",2*$LENGTH(IORVON)-1)_IORVON_X_IORVOFF
+12 WRITE !,$$CTR(X),!
+13 QUIT
+14 ;----------
SEL(S) ;EP - Select a Disclosure to edit, S is DIC("S")
+1 NEW AZXA,AZXAY,DA,DIC
+2 IF $DATA(S)
SET DIC("S")=S
+3 SET DIC="^AZXAREC("
SET Y=$$DIC(.DIC)
+4 IF Y<1
QUIT Y
+5 SET DA=+Y
DO LOCK(DA)
IF '$TEST
QUIT 0
+6 SET AZXA=DA
+7 IF '$DATA(ZTQUEUED)
Begin DoDot:1
+8 SET DIC="^AZXAREC("
DO DIQ^AZXAFMC
+9 SET DA=$ORDER(^AZXACOM("AD",AZXA,0))
IF DA
SET DIC="^AZXACOM("
DO DIQ^AZXAFMC
+10 FOR AZXAY=0:0
SET AZXAY=$ORDER(^AZXADX("AD",AZXA,AZXAY))
IF 'AZXAY
QUIT
SET DA=AZXAY
SET DIC="^AZXADX("
DO DIQ^AZXAFMC
+11 FOR AZXAY=0:0
SET AZXAY=$ORDER(^AZXAPX("AD",AZXA,AZXAY))
IF 'AZXAY
QUIT
SET DA=AZXAY
SET DIC="^AZXAPX("
DO DIQ^AZXAFMC
+12 DO EOP
+13 QUIT
End DoDot:1
+14 QUIT AZXA
+15 ;----------
DEV ; EP - SELECT OUTPUT DEVICE
+1 SET AZXAQ=0
+2 SET %ZIS="PQ"
DO ^%ZIS
+3 IF POP
SET AZXAQ=1
+4 QUIT
+5 ;----------
PAUSE ; EP - PAUSE FOR USER
+1 IF $EXTRACT(IOST)'="C"
QUIT
+2 IF $DATA(ZTQUEUED)!'(IOT="TRM")!$DATA(IO("S"))
QUIT
+3 SET DIR(0)="E"
SET DIR("A")="Press any key to continue"
DO ^DIR
KILL DIR
+4 WRITE !
+5 QUIT
+6 ;----------
CONF ; EP - CONFIDENTIAL CLIENT DATA HEADER
+1 WRITE !,$$CTR("*** CONFIDENTIAL PATIENT INFORMATION ***"),!
+2 QUIT
+3 ;----------
TOFAC(R) ; EP - RETURN APPROPRIATE
+1 ; 'TO PRIMARY VENDOR/TO IHS FACILITY/TO OTHER PROVIDER'
+2 ; R = ROI DISCLOSURE IEN
+3 NEW X,Y
+4 SET Y=""
+5 IF '$GET(R)
GOTO TOFACX
+6 IF '$DATA(^AZXAREC(R,0))
GOTO TOFACX
+7 SET X=^AZXAREC(R,0)
+8 SET Y=$PIECE(X,U,8)
IF Y
SET Y=$PIECE(^DIC(4,Y,0),U)
GOTO TOFACX
+9 SET Y=$PIECE(X,U,7)
IF Y
SET Y=$PIECE(^AUTTVNDR(Y,0),U)
+10 IF Y="OTHER PROVIDER (NON-CHS)"
SET Y=$PIECE(X,U,9)
IF Y
SET Y=$PIECE(^AZXALPRV(Y,0),U)
TOFACX ;
+1 QUIT Y