Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WorldVistAEHR/trunk/r/REGISTRATION-DGQE-DG-DPT-GRPX-VAD-VAF-VAS-VAT-VAU--VA-VIC--DGBT--DGJ--DGYA--VALM/DGRPV.m

    r613 r623  
    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,634**;Aug 13, 1993;Build 30
    3         ; Modified from FOIA VISTA,
    4         ; Copyright (C) 2007 WorldVistA
    5         ;
    6         ; This program is free software; you can redistribute it and/or modify
    7         ; it under the terms of the GNU General Public License as published by
    8         ; the Free Software Foundation; either version 2 of the License, or
    9         ; (at your option) any later version.
    10         ;
    11         ; This program is distributed in the hope that it will be useful,
    12         ; but WITHOUT ANY WARRANTY; without even the implied warranty of
    13         ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14         ; GNU General Public License for more details.
    15         ;
    16         ; You should have received a copy of the GNU General Public License
    17         ; along with this program; if not, write to the Free Software
    18         ; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
    19         ;
    20         ;
    21         ;set up variables for registration screen processing
    22         ;
    23         ;DGRPVV   :string of 15 ones and zeros each character corresponding to
    24         ;          a particular screen (0 means allow edit, 1 means don't)
    25         ;
    26         ;DGRPVV(n):where n=screen number.  String of x ones and zeros where
    27         ;          x is the number of elements on screen n (0=edit, 1=don't)
    28         ;
    29         ;DGVI     :Turn on high intensity
    30         ;DGVO     :Turn off high intensity
    31         ;
    32 EN      D DT^DICRW I '$D(DVBGUI) D HOME^%ZIS
    33         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
    34         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)
    35 M       I $L(DGVI_DGVO)>4 S X=132 X ^%ZOSF("RM")
    36         S DGRPW=1,DGRPCM=0,DGRPU="UNANSWERED",DGRPNA="NOT APPLICABLE",DGRPV=$S($D(DGRPV):DGRPV,1:1)
    37 SC7     S X=$S('$D(^DPT(DFN,"TYPE")):0,1:+^("TYPE")) S:'$D(DGELVER) DGELVER=0
    38         S DGRPTYPE=$S($D(^DG(391,+X,0)):^(0),1:""),(DGRPSC,DGRPSCE,DGRPSCE1)="" S:'$D(DGELVER) DGELVER=0
    39         I DGRPTYPE'="" S DGRPSC=$G(^DG(391,+X,"S")),DGRPSCE=$G(^("E")),DGRPSCE1=$G(^("E10"))
    40         ;
    41         S DGPH=$P($G(^DPT(DFN,.53)),U)  ;Purple Heart Indicator
    42         I $G(DGPRFLG)=1 D
    43         . S DGRPVV="000001111111111"
    44         E  D
    45         . S DGRPVV="000000000000000"
    46         S X="5^3^5^2^3^8^4^2^10^2^4^5^5^2^1"
    47         ;
    48         ; ** VOE change 1 of 4: DAOU/WCJ 2/7/2005,VA/CJS,WV/TOAD 5/9/2006 **
    49         ;
    50         ; new line: if agency code is not VA, new section added to screen 3
    51         I $G(DUZ("AG"))'="V" S $P(X,"^",3)="6"
    52         ;
    53         ; ** end of VOE change 1 **
    54         ;
    55         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))
    56         S DGRPVV(1.1)="00"
    57         S DGRPVV(2)="00010"
    58         I $G(DGPH)]"" S $E(DGRPVV(6),8)=1
    59         ;
    60         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)
    61         ;
    62         ;-- if patient type is TRICARE then turn off screens 2,4
    63         ;
    64         ;-- modified 08/20/2003 for NOIS Calls MAC-0400-61574 & AMA-0700-71769
    65         ;-- commented the line to allow screens 2 & 4 to display for Tricare
    66         ;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)
    67         ;
    68         ; ** VOE change 2 of 4: DAOU/WCJ 2/7/2005,VA/CJS,WV/TOAD 5/9/2006 **
    69         ;
    70         ; add lines: if agency code is not VA, change last screen to 14,
    71         ; and clear flag for screen 15 (it is VA-specific)
    72         I $G(DUZ("AG"))'="V" D
    73         . S DGRPLAST=14
    74         . F I=15 S DGRPVV=$E(DGRPVV,0,I-1)_$S(I=15:"",1:1)_$E(DGRPVV,I+1,99)
    75         ;
    76         ; ** end of VOE change 2 **
    77         ;
    78         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)
    79         I $G(^DPT(DFN,.35)),(^(.35)<+($E(DT,1,3)_"0000")) S DGRPVV=$E(DGRPVV,0,7)_11_$E(DGRPVV,10,99)
    80         K DIRUT,DUOUT,DTOUT
    81         ;
    82         ;Fields are numbered screen_item and put in that piece position.
    83         ;Because FM does not allow more than 100 pieces on a node, it was
    84         ;necessary to start a new node E10 for fields on screens 10 or higher.
    85         ;In these instances, the piece position will be screen_item-100 so,
    86         ;for example, screen 11, item 2 would be field 112, but piece 12.
    87         ;Items on screens <10 will be found on node E.
    88         ;
    89         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)
    90         ;
    91         I $S('($D(DUZ)#2):0,'$D(^XUSEC("DG ELIGIBILITY",DUZ)):0,1:1) G ELVER ;if user holds eligibility key, skip
    92         F I=.3,.32,.361 S DGRP(I)=$S($D(^DPT(DFN,I)):^(I),1:"")
    93         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
    94         ;
    95         ; ** VOE change 3 of 4: DAOU/WCJ 2/7/2005,VA/CJS,WV/TOAD 5/9/2006 **
    96         ;
    97         ; add line: if agency code is not VA, only edit one section of screen 7
    98         ; The rest is veteran specific.
    99         I $G(DUZ("AG"))'="V" S DGRPVV(7)="1101"
    100         ;
    101         ; ** end of VOE change 3 **
    102         ;
    103         I $P(DGRP(.3),"^",6)]"" S DGRPVV(8)=11 ;if monetary ben. verified, can't edit income screening data
    104         I $P(DGRP(.32),"^",2)]"" S DGRPVV(6)=111111111 ;if service data verified, can't edit service screen
    105         ;
    106 ELVER   ;set up variables for eligibility verification
    107         ;if elig ver option, only edit screens 1, 2, and 7 (and 6, 8, 9, 10,
    108         ;   and 11 if they're turned on).
    109         ;
    110         S DGRP(.361)=$G(^DPT(DFN,.361))
    111         I $P(DGRP(.361),U,3)="H" S DGRPVV(10)=10
    112         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
    113         S:'DGELVER DGRPLAST=$S($G(DGPRFLG)=1:5,1:15)
    114         ;
    115         ; ** VOE change 4 of 4: DAOU/WCJ 2/7/2005,VA/CJS,WV/TOAD 5/9/2006 **
    116         ;
    117         ; add line: if agency code is not VA, and last screen is set to 15, set
    118         ; it to 14 (it is VA-specific)
    119         I $G(DUZ("AG"))'="V",DGRPLAST=15 S DGRPLAST=14
    120         ;
    121         ; ** end of VOE change 4 **
    122         ;
    123         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
    124 Q       K DGRPSC,DGRPSCE
    125         Q
    126         ;
    127 WW      ;Write number on screens for display and/or edit (Z=number)
    128         W:DGRPW ! S Z=$S(DGRPCM:Z,DGRPV:"<"_Z_">",$E(DGRPVV(DGRPS),Z):"<"_Z_">",1:"["_Z_"]")
    129         I DGRPCM!($E(Z)="[") W @DGVI,Z,@DGVO
    130         I 'DGRPCM&($E(Z)'="[") W Z
    131         Q
    132         ;
    133 WW1     ;spacing for screen display (Z=item to print)
    134         F Z2=1:1:(Z1-$L(Z)) S Z=Z_" "
    135         W Z K Z2
    136         Q
    137         ;
    138 WW2     ; Write number on screen for fields always selectable
    139         W:DGRPW ! S Z="["_Z_"]"
    140         I DGRPCM!($E(Z)="[") W @DGVI,Z,@DGVO
    141         Q
     1DGRPV ;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,634**;Aug 13, 1993;Build 28
     3 ; Modified from FOIA VISTA,
     4 ; Copyright (C) 2007 WorldVistA
     5 ;
     6 ; This program is free software; you can redistribute it and/or modify
     7 ; it under the terms of the GNU General Public License as published by
     8 ; the Free Software Foundation; either version 2 of the License, or
     9 ; (at your option) any later version.
     10 ;
     11 ; This program is distributed in the hope that it will be useful,
     12 ; but WITHOUT ANY WARRANTY; without even the implied warranty of
     13 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     14 ; GNU General Public License for more details.
     15 ;
     16 ; You should have received a copy of the GNU General Public License
     17 ; along with this program; if not, write to the Free Software
     18 ; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
     19 ;
     20 ;
     21 ;set up variables for registration screen processing
     22 ;
     23 ;DGRPVV   :string of 15 ones and zeros each character corresponding to
     24 ;          a particular screen (0 means allow edit, 1 means don't)
     25 ;
     26 ;DGRPVV(n):where n=screen number.  String of x ones and zeros where
     27 ;          x is the number of elements on screen n (0=edit, 1=don't)
     28 ;
     29 ;DGVI     :Turn on high intensity
     30 ;DGVO     :Turn off high intensity
     31 ;
     32EN D DT^DICRW I '$D(DVBGUI) D HOME^%ZIS
     33 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
     34 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)
     35M I $L(DGVI_DGVO)>4 S X=132 X ^%ZOSF("RM")
     36 S DGRPW=1,DGRPCM=0,DGRPU="UNANSWERED",DGRPNA="NOT APPLICABLE",DGRPV=$S($D(DGRPV):DGRPV,1:1)
     37SC7 S X=$S('$D(^DPT(DFN,"TYPE")):0,1:+^("TYPE")) S:'$D(DGELVER) DGELVER=0
     38 S DGRPTYPE=$S($D(^DG(391,+X,0)):^(0),1:""),(DGRPSC,DGRPSCE,DGRPSCE1)="" S:'$D(DGELVER) DGELVER=0
     39 I DGRPTYPE'="" S DGRPSC=$G(^DG(391,+X,"S")),DGRPSCE=$G(^("E")),DGRPSCE1=$G(^("E10"))
     40 ;
     41 S DGPH=$P($G(^DPT(DFN,.53)),U)  ;Purple Heart Indicator
     42 I $G(DGPRFLG)=1 D
     43 . S DGRPVV="000001111111111"
     44 E  D
     45 . S DGRPVV="000000000000000"
     46 S X="5^3^5^2^3^8^4^2^10^2^4^5^5^2^1"
     47 ;
     48 ; ** VOE change 1 of 4: DAOU/WCJ 2/7/2005,VA/CJS,WV/TOAD 5/9/2006 **
     49 ;
     50 ; new line: if agency code is not VA, new section added to screen 3
     51 I $G(DUZ("AG"))'="V" S $P(X,"^",3)="6"
     52 ;
     53 ; ** end of VOE change 1 **
     54 ;
     55 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))
     56 S DGRPVV(1.1)="00"
     57 S DGRPVV(2)="00010"
     58 I $G(DGPH)]"" S $E(DGRPVV(6),8)=1
     59 ;
     60 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)
     61 ;
     62 ;-- if patient type is TRICARE then turn off screens 2,4
     63 ;
     64 ;-- modified 08/20/2003 for NOIS Calls MAC-0400-61574 & AMA-0700-71769
     65 ;-- commented the line to allow screens 2 & 4 to display for Tricare
     66 ;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)
     67 ;
     68 ; ** VOE change 2 of 4: DAOU/WCJ 2/7/2005,VA/CJS,WV/TOAD 5/9/2006 **
     69 ;
     70 ; add lines: if agency code is not VA, change last screen to 14,
     71 ; and clear flag for screen 15 (it is VA-specific)
     72 I $G(DUZ("AG"))'="V" D
     73 . S DGRPLAST=14
     74 . F I=15 S DGRPVV=$E(DGRPVV,0,I-1)_$S(I=15:"",1:1)_$E(DGRPVV,I+1,99)
     75 ;
     76 ; ** end of VOE change 2 **
     77 ;
     78 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)
     79 I $G(^DPT(DFN,.35)),(^(.35)<+($E(DT,1,3)_"0000")) S DGRPVV=$E(DGRPVV,0,7)_11_$E(DGRPVV,10,99)
     80 K DIRUT,DUOUT,DTOUT
     81 ;
     82 ;Fields are numbered screen_item and put in that piece position.
     83 ;Because FM does not allow more than 100 pieces on a node, it was
     84 ;necessary to start a new node E10 for fields on screens 10 or higher.
     85 ;In these instances, the piece position will be screen_item-100 so,
     86 ;for example, screen 11, item 2 would be field 112, but piece 12.
     87 ;Items on screens <10 will be found on node E.
     88 ;
     89 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)
     90 ;
     91 I $S('($D(DUZ)#2):0,'$D(^XUSEC("DG ELIGIBILITY",DUZ)):0,1:1) G ELVER ;if user holds eligibility key, skip
     92 F I=.3,.32,.361 S DGRP(I)=$S($D(^DPT(DFN,I)):^(I),1:"")
     93 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
     94 ;
     95 ; ** VOE change 3 of 4: DAOU/WCJ 2/7/2005,VA/CJS,WV/TOAD 5/9/2006 **
     96 ;
     97 ; add line: if agency code is not VA, only edit one section of screen 7
     98 ; The rest is veteran specific.
     99 I $G(DUZ("AG"))'="V" S DGRPVV(7)="1101"
     100 ;
     101 ; ** end of VOE change 3 **
     102 ;
     103 I $P(DGRP(.3),"^",6)]"" S DGRPVV(8)=11 ;if monetary ben. verified, can't edit income screening data
     104 I $P(DGRP(.32),"^",2)]"" S DGRPVV(6)=111111111 ;if service data verified, can't edit service screen
     105 ;
     106ELVER ;set up variables for eligibility verification
     107 ;if elig ver option, only edit screens 1, 2, and 7 (and 6, 8, 9, 10,
     108 ;   and 11 if they're turned on).
     109 ;
     110 S DGRP(.361)=$G(^DPT(DFN,.361))
     111 I $P(DGRP(.361),U,3)="H" S DGRPVV(10)=10
     112 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
     113 S:'DGELVER DGRPLAST=$S($G(DGPRFLG)=1:5,1:15)
     114 ;
     115 ; ** VOE change 4 of 4: DAOU/WCJ 2/7/2005,VA/CJS,WV/TOAD 5/9/2006 **
     116 ;
     117 ; add line: if agency code is not VA, and last screen is set to 15, set
     118 ; it to 14 (it is VA-specific)
     119 I $G(DUZ("AG"))'="V",DGRPLAST=15 S DGRPLAST=14
     120 ;
     121 ; ** end of VOE change 4 **
     122 ;
     123 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
     124Q K DGRPSC,DGRPSCE
     125 Q
     126 ;
     127WW ;Write number on screens for display and/or edit (Z=number)
     128 W:DGRPW ! S Z=$S(DGRPCM:Z,DGRPV:"<"_Z_">",$E(DGRPVV(DGRPS),Z):"<"_Z_">",1:"["_Z_"]")
     129 I DGRPCM!($E(Z)="[") W @DGVI,Z,@DGVO
     130 I 'DGRPCM&($E(Z)'="[") W Z
     131 Q
     132 ;
     133WW1 ;spacing for screen display (Z=item to print)
     134 F Z2=1:1:(Z1-$L(Z)) S Z=Z_" "
     135 W Z K Z2
     136 Q
     137 ;
     138WW2 ; Write number on screen for fields always selectable
     139 W:DGRPW ! S Z="["_Z_"]"
     140 I DGRPCM!($E(Z)="[") W @DGVI,Z,@DGVO
     141 Q
Note: See TracChangeset for help on using the changeset viewer.