1 | DGRPV ;ALB/MRL,RTK,PJR,BRM,TMK,AMA - REGISTRATION DEFINE VARIABLES ON ENTRY ; 8/11/05 12:56pm
|
---|
2 | ;;5.3;Registration;**109,114,247,190,327,365,343,397,415,489,546,545,451,624,677,672,689,716**;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | ;
|
---|
5 | ;set up variables for registration screen processing
|
---|
6 | ;
|
---|
7 | ;DGRPVV :string of 15 ones and zeros each character corresponding to
|
---|
8 | ; a particular screen (0 means allow edit, 1 means don't)
|
---|
9 | ;
|
---|
10 | ;DGRPVV(n):where n=screen number. String of x ones and zeros where
|
---|
11 | ; x is the number of elements on screen n (0=edit, 1=don't)
|
---|
12 | ;
|
---|
13 | ;DGVI :Turn on high intensity
|
---|
14 | ;DGVO :Turn off high intensity
|
---|
15 | ;
|
---|
16 | EN D DT^DICRW I '$D(DVBGUI) D HOME^%ZIS
|
---|
17 | S (DGVI,DGVO)="""""" I $S('$D(IOST(0)):1,'$D(^DG(43,1,0)):1,'$P(^DG(43,1,0),"^",36):1,$D(^DG(43,1,"TERM",IOST(0))):1,1:0) G M ;goto M if not high intensity
|
---|
18 | I $D(^%ZIS(2,IOST(0),7)) S I=^(7),X=$S($P(I,"^",3)]"":3,1:2) I $L($P(I,"^",1)),$L($P(I,"^",X)) S DGVI=$P(I,"^",1),DGVO=$P(I,"^",X)
|
---|
19 | M I $L(DGVI_DGVO)>4 S X=132 X ^%ZOSF("RM")
|
---|
20 | S DGRPW=1,DGRPCM=0,DGRPU="UNANSWERED",DGRPNA="NOT APPLICABLE",DGRPV=$S($D(DGRPV):DGRPV,1:1)
|
---|
21 | SC7 S X=$S('$D(^DPT(DFN,"TYPE")):0,1:+^("TYPE")) S:'$D(DGELVER) DGELVER=0
|
---|
22 | S DGRPTYPE=$S($D(^DG(391,+X,0)):^(0),1:""),(DGRPSC,DGRPSCE,DGRPSCE1)="" S:'$D(DGELVER) DGELVER=0
|
---|
23 | I DGRPTYPE'="" S DGRPSC=$G(^DG(391,+X,"S")),DGRPSCE=$G(^("E")),DGRPSCE1=$G(^("E10"))
|
---|
24 | ;
|
---|
25 | S DGPH=$P($G(^DPT(DFN,.53)),U) ;Purple Heart Indicator
|
---|
26 | I $G(DGPRFLG)=1 D
|
---|
27 | . S DGRPVV="000001111111111"
|
---|
28 | E D
|
---|
29 | . S DGRPVV="000000000000000"
|
---|
30 | S X="5^3^5^2^3^8^4^2^10^2^4^5^5^2^1"
|
---|
31 | F I=1:1:15 S J=+$P(X,"^",I),DGRPVV(I)=$S((I<12)!(I=15):$E("00000000000000000",1,J),1:$E("11111111111111111",1,J))
|
---|
32 | S DGRPVV(1.1)="00"
|
---|
33 | S DGRPVV(2)="00010"
|
---|
34 | I $G(DGPH)]"" S $E(DGRPVV(6),8)=1
|
---|
35 | ;
|
---|
36 | F I=3,6,8,9,10,11 S J=+$P(DGRPSC,"^",I) I 'J S DGRPVV=$E(DGRPVV,0,I-1)_1_$E(DGRPVV,I+1,99)
|
---|
37 | ;
|
---|
38 | ;-- if patient type is TRICARE then turn off screens 2,4
|
---|
39 | ;
|
---|
40 | ;-- modified 08/20/2003 for NOIS Calls MAC-0400-61574 & AMA-0700-71769
|
---|
41 | ;-- commented the line to allow screens 2 & 4 to display for Tricare
|
---|
42 | ;I DGRPTYPE["TRICARE" F I=2,4 S J=+$P(DGRPSC,"^",I) I 'J S DGRPVV=$E(DGRPVV,0,I-1)_1_$E(DGRPVV,I+1,99)
|
---|
43 | ;
|
---|
44 | F I=31:0 S I=$O(^DD(391,I)) Q:I=""!(I>99) I $D(^(I,0)),($E(^(0),1)'="*"),'+$P(DGRPSCE,"^",I) S X1=$E(I),X2=$E(I,2) I +X1 S DGRPVV(X1)=$E(DGRPVV(X1),0,X2-1)_1_$E(DGRPVV(X1),X2+1,99)
|
---|
45 | I $G(^DPT(DFN,.35)),(^(.35)<+($E(DT,1,3)_"0000")) S DGRPVV=$E(DGRPVV,0,7)_11_$E(DGRPVV,10,99)
|
---|
46 | K DIRUT,DUOUT,DTOUT
|
---|
47 | ;
|
---|
48 | ;Fields are numbered screen_item and put in that piece position.
|
---|
49 | ;Because FM does not allow more than 100 pieces on a node, it was
|
---|
50 | ;necessary to start a new node E10 for fields on screens 10 or higher.
|
---|
51 | ;In these instances, the piece position will be screen_item-100 so,
|
---|
52 | ;for example, screen 11, item 2 would be field 112, but piece 12.
|
---|
53 | ;Items on screens <10 will be found on node E.
|
---|
54 | ;
|
---|
55 | F I=100:0 S I=$O(^DD(391,I)) Q:I=""!(I>150) I $D(^(I,0)),($E(^(0),1)'="*"),'+$P(DGRPSCE1,"^",I-100) S X1=$E(I,1,2),X2=$E(I,3) I +X1 S DGRPVV(X1)=$E(DGRPVV(X1),0,X2-1)_1_$E(DGRPVV(X1),X2+1,99)
|
---|
56 | ;
|
---|
57 | I $S('($D(DUZ)#2):0,'$D(^XUSEC("DG ELIGIBILITY",DUZ)):0,1:1) G ELVER ;if user holds eligibility key, skip
|
---|
58 | F I=.3,.32,.361 S DGRP(I)=$S($D(^DPT(DFN,I)):^(I),1:"")
|
---|
59 | S DGRPVV(10)=11 I $P(DGRP(.361),"^",1)="V" S DGRPVV(7)=111,DGRPVV(1)=1_$E(DGRPVV(1),2,99) ;if elig verified, can't edit elig data, name, ssn, or dob
|
---|
60 | I $P(DGRP(.3),"^",6)]"" S DGRPVV(8)=11 ;if monetary ben. verified, can't edit income screening data
|
---|
61 | I $P(DGRP(.32),"^",2)]"" S DGRPVV(6)=111111111 ;if service data verified, can't edit service screen
|
---|
62 | ;
|
---|
63 | ELVER ;set up variables for eligibility verification
|
---|
64 | ;if elig ver option, only edit screens 1, 2, and 7 (and 6, 8, 9, 10,
|
---|
65 | ; and 11 if they're turned on).
|
---|
66 | ;
|
---|
67 | S DGRP(.361)=$G(^DPT(DFN,.361))
|
---|
68 | I $P(DGRP(.361),U,3)="H" S DGRPVV(10)=10
|
---|
69 | I $P($G(DGRP(.361)),U)="V",($P(DGRP(.361),U,3)="H") S DGRPVV(6)=$E(DGRPVV(6),1,5)_1_$E(DGRPVV(6),7,99),DGRPVV(11)=1000
|
---|
70 | S:'DGELVER DGRPLAST=$S($G(DGPRFLG)=1:5,1:15)
|
---|
71 | I DGELVER S DGRPVV="00111"_$E(DGRPVV,6,11)_"1111" F I=1:1:11 S J=$E(DGRPVV,I) I 'J S DGRPLAST=I
|
---|
72 | Q K DGRPSC,DGRPSCE
|
---|
73 | Q
|
---|
74 | ;
|
---|
75 | WW ;Write number on screens for display and/or edit (Z=number)
|
---|
76 | W:DGRPW ! S Z=$S(DGRPCM:Z,DGRPV:"<"_Z_">",$E(DGRPVV(DGRPS),Z):"<"_Z_">",1:"["_Z_"]")
|
---|
77 | I DGRPCM!($E(Z)="[") W @DGVI,Z,@DGVO
|
---|
78 | I 'DGRPCM&($E(Z)'="[") W Z
|
---|
79 | Q
|
---|
80 | ;
|
---|
81 | WW1 ;spacing for screen display (Z=item to print)
|
---|
82 | F Z2=1:1:(Z1-$L(Z)) S Z=Z_" "
|
---|
83 | W Z K Z2
|
---|
84 | Q
|
---|
85 | ;
|
---|
86 | WW2 ; Write number on screen for fields always selectable
|
---|
87 | W:DGRPW ! S Z="["_Z_"]"
|
---|
88 | I DGRPCM!($E(Z)="[") W @DGVI,Z,@DGVO
|
---|
89 | Q
|
---|