DGRPE1 ;ALB/MRL,RTK,BRM,RGL,ERC,TDM,ARF,JAM,ARF - REGISTRATIONS EDITS (CONTINUED) ;4/2/09 11:26am
;;5.3;Registration;**114,327,451,631,688,808,804,909,952,1085,1093,1111**;Aug 13, 1993;Build 18
; Reference to DO^DIC1 in ICR #10007
;
;***CONTAINS ISM SPECIFIC CODE TO AVOID STORE ERRORS WITH ELIG.***
;
I DGRPS'=7 F I=1:1 S J=$P(DGDR,",",I) Q:J="" F J1=J,J*1000 Q:'$T(@J1) S DGDRD=$P($T(@J1),";;",2) D S
I DGRPS=7 S DR="[DG LOAD EDIT SCREEN 7]"
;S DR(2,2.0361)=".01"
D ^DIE K DIE,DR,DGCT,DGDR,DGDRD,DGDRS,I,J,J1
N DGELIG S DGELIG=$$GET1^DIQ(2,DFN_",",.361) I DGELIG'="EXPANDED MH CARE NON-ENROLLEE" D DEACTIVE^DGOTHEL
; rbd DG*5.3*909 Update Camp Lejeune potentially to No based on
; Veteran changing to No or Primary Elig Code becoming a Non-Veteran
; Type.
D SETCLNO^DGENCLEA
;update/set ELIGIBILITY VERIF. SOURCE field (327/Ineligible Project)
I $D(^DPT(DFN,.361)) S DGELG=^DPT(DFN,.361) D
.N DGXEL
.S DGXEL=$P(DGELG,U,5),DATA(.3613)="V"
.I $S($G(DGXEL)["CEV":1,$G(DGXEL)["VBA":1,$G(DGXEL)["VIVA":1,1:0),$P(DGELG,U,6)=.5 S DATA(.3613)="H"
.I '$$UPD^DGENDBS(2,DFN,.DATA)
Q
S I $L(@DGDRS)+$L(DGDRD)<241 S @DGDRS=@DGDRS_DGDRD Q
S DGCT=DGCT+1,DGDRS="DR(1,2,"_DGCT_")",@DGDRS=DGDRD Q
701 ;;391;D SC7^DGRPV;1901;.301;S:X'="Y" Y=.313;.302;.313;.312;
702 ;;.361;D AAC1^DGLOCK2 S:DGAAC(1)']"" Y=361;.309;361;.323;D ^DGYZODS;S:'DGODS Y=.36265;11500.02;11500.03;.36265;S:X='"Y" Y="@72";.3626;@72;
703 ;;.3731;
1001 ;;.152;S:X="" Y="@101";.1651;.1653;.1654;.307;.1656;@101;
1002 ;;.153;S:X="" Y="@102";.1657:.1659;.16;@102;
1101 ;;.3611;.3612;.3614;.3615;
1102 ;;.306;
1103 ;;.322;
1104 ;;D VETTYPE^DGRPE1;D MSG^DGRPE1 S Y=0;@114;K DGRDCHG;D DR^DGRPE1;.302;.3721;D EFF^DGRPE1;D:$G(DGRDCHG) BULL^DGRPE1;K DGRDCHG;
MSG W !,"Patient is not a veteran. Can't enter rated disabilities",! Q
;
BULL ; Rated Disabilities update bulletin
;
Q ; This bulletin has been disabled. DG*5.3*808
;
N DGBULL,DGLINE,DGMGRP,DGNAME,DIFROM,VA,VAERR,XMTEXT,XMSUB,XMDUZ
S DGMGRP=$O(^XMB(3.8,"B","DGEN ELIGIBILITY ALERT",""))
Q:'DGMGRP
D XMY^DGMTUTL(DGMGRP,0,1)
S DGNAME=$P($G(^DPT(DFN,0)),"^"),DGSSN=$P($G(^DPT(DFN,0)),"^",9)
S XMTEXT="DGBULL("
S XMSUB="RATED DISABILITY UPDATED"
S DGLINE=0
D LINE^DGEN("Patient: "_DGNAME,.DGLINE)
D LINE^DGEN("SSN: "_DGSSN,.DGLINE)
D LINE^DGEN("",.DGLINE)
D LINE^DGEN("Send updates to SC Disabilities to HEC via fax or HECAlert",.DGLINE)
D LINE^DGEN("Outlook mail group so that they can be entered into VHA's",.DGLINE)
D LINE^DGEN("Authoritative Database. SC Disability information entered directly",.DGLINE)
D LINE^DGEN("into VistA may be overlaid.",.DGLINE)
D ^XMD
Q
DR ;
K DGSCPC
S DGSCPC=$P($G(^DPT(DFN,.3)),U,2)
S DR(2,2.04)=".01;2;3"
Q
EFF ;
I $G(DGSCPC)=$P($G(^DPT(DFN,.3)),U,2) Q
S DGFDA(2,DFN_",",.3014)="@"
D FILE^DIE("","DGFDA","DGERR")
K DGFDA,DGSCPC
Q
VETTYPE ;
S:$S('$D(^DPT(DFN,"VET")):0,^("VET")="Y":1,1:0) Y="@114" Q
S:'$S('$D(^("TYPE")):1,'$D(^DG(391,+^("TYPE"),0)):1,$P(^(0),"^",2):0,1:1) Y="@114"
Q
DR207 ; DG*5.3*1085 - Prompt for PREFERRED LANGUAGE (#2.07,.02)
; DG*5.3*1093; Add X,Y to NEW variables below - the call to ^DIR uses these vars
N DIR,DGFDA,DGLANGNM,DGERR,DGSUB,DGDATE,X,Y
S DGDATE="",DGDATE=$O(^DPT(DFN,.207,"B",DGDATE),-1)
I DGDATE'="" S DGSUB=$O(^DPT(DFN,.207,"B",DGDATE,0)) ;get the latest subscript
I $G(DGSUB)'="" S DGLANGNM=$$GET1^DIQ(2.07,DGSUB_","_DFN_",",.02) ;get PREFERRED LANGUAGE name
;
S DIR("B")=$S($G(DGLANGNM)'="":DGLANGNM,1:"ENGLISH")
S DIR(0)="2.07,.02" D ^DIR
;
I Y["^" W $C(7),!!,"No language was entered.",! H 3 Q
I Y="" Q
Q:Y=$G(DGLANGNM) ;if PREFERRED LANGUAGE is the same
;
S DGFDA(2.07,"+1,"_DFN_",",.01)=$$NOW^XLFDT()
S DGFDA(2.07,"+1,"_DFN_",",.02)=Y
D UPDATE^DIE("","DGFDA",,"DGERR")
Q
;
DR104() ;DG*5.3*1111-Prompt for the PAGER NUMBER (#.135) field of the PATIENT file #2 only if currently populated
;Returns: 1 - processing of fields beyond the PAGER NUMBER should continue
; 0 - processing should not continue (e.g. the user is exiting or a timeout occurred)
; Quit if PAGER NUMBER field is not currently populated
Q:$$GET1^DIQ(2,DFN,.135)="" 1
;
; New input parameters for UPDATE^DIE call
N DGFDA
N DGERR
N DIR
;
; New DIR output vars that are always returned
N X ; Unprocessed user response
N Y ; Processed user response
;
; New DIR output vars that are conditionally returned
N DTOUT ;User time out
N DUOUT ;User entered caret (^)
N DIRUT ;User entered caret (^), pressed ENTER, or @ entered, or timed out
N DIROUT ;User entered two carets (^^)
;
; Prompt for the PAGER NUMBER
S DIR(0)="2,.135" D ^DIR K DIR
S DGFDA(2,DFN_",",.135)=Y
;
; Quit if TIMED READ (# OF SECONDS) maximum reached
I $D(DTOUT) S DGTMOT=1 Q 0
;
; Quit when ^ or ^^ is entered
I ($D(DUOUT))!($D(DIROUT)) Q 0
;
; If user wants to delete PAGER NUMBER, then ask user to verify deletion
I X["@" S DIR(0)="YA",DIR("B")="NO",DIR("A")="SURE YOU WANT TO DELETE? " N X,Y D ^DIR K DIR
;
; Quit if timeout or exit
I $D(DTOUT) S DGTMOT=1 Q 0
I ($D(DUOUT))!$D(DIROUT) Q 0
;
; Quit if answered NO to SURE YOU WANT TO DELETE?
I (X["N") W " <NOTHING DELETED>" Q 1
;
; Update PAGER NUMBER (#.135) field
D UPDATE^DIE("","DGFDA",,"DGERR")
Q 1
;
; DG*5.3*1111 - code moved here from DGRPE due to size limitations of DGRPE
YN1316(DFN) ;Email address indicator - DG*5.3*865
N %,RSLT
S DIE("NO^")=""
P1316 ;
S %=0
W !,"DOES THE PATIENT HAVE AN EMAIL ADDRESS? Y/N"
D YN^DICN
; DG*5.3*1111 - process a timeout
I $D(DTOUT) S DGTMOT=1 Q 0
I %=0 W !," If the patient has a valid Email Address, please answer with 'Yes'.",!," If no Email Address please answer with 'No'." G P1316
I %=-1 W !," EXIT NOT ALLOWED ??" G P1316
S RSLT=$S(%=1:"Y",%=2:"N")
N FDA,IENS
Q:'$G(DFN)
S IENS=DFN_",",FDA(2,IENS,.1316)=RSLT
D FILE^DIE("","FDA")
Q RSLT
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDGRPE1 5973 printed Oct 16, 2024@18:56:49 Page 2
DGRPE1 ;ALB/MRL,RTK,BRM,RGL,ERC,TDM,ARF,JAM,ARF - REGISTRATIONS EDITS (CONTINUED) ;4/2/09 11:26am
+1 ;;5.3;Registration;**114,327,451,631,688,808,804,909,952,1085,1093,1111**;Aug 13, 1993;Build 18
+2 ; Reference to DO^DIC1 in ICR #10007
+3 ;
+4 ;***CONTAINS ISM SPECIFIC CODE TO AVOID STORE ERRORS WITH ELIG.***
+5 ;
+6 IF DGRPS'=7
FOR I=1:1
SET J=$PIECE(DGDR,",",I)
if J=""
QUIT
FOR J1=J,J*1000
if '$TEXT(@J1)
QUIT
SET DGDRD=$PIECE($TEXT(@J1),";;",2)
DO S
+7 IF DGRPS=7
SET DR="[DG LOAD EDIT SCREEN 7]"
+8 ;S DR(2,2.0361)=".01"
+9 DO ^DIE
KILL DIE,DR,DGCT,DGDR,DGDRD,DGDRS,I,J,J1
+10 NEW DGELIG
SET DGELIG=$$GET1^DIQ(2,DFN_",",.361)
IF DGELIG'="EXPANDED MH CARE NON-ENROLLEE"
DO DEACTIVE^DGOTHEL
+11 ; rbd DG*5.3*909 Update Camp Lejeune potentially to No based on
+12 ; Veteran changing to No or Primary Elig Code becoming a Non-Veteran
+13 ; Type.
+14 DO SETCLNO^DGENCLEA
+15 ;update/set ELIGIBILITY VERIF. SOURCE field (327/Ineligible Project)
+16 IF $DATA(^DPT(DFN,.361))
SET DGELG=^DPT(DFN,.361)
Begin DoDot:1
+17 NEW DGXEL
+18 SET DGXEL=$PIECE(DGELG,U,5)
SET DATA(.3613)="V"
+19 IF $SELECT($GET(DGXEL)["CEV":1,$GET(DGXEL)["VBA":1,$GET(DGXEL)["VIVA":1,1:0)
IF $PIECE(DGELG,U,6)=.5
SET DATA(.3613)="H"
+20 IF '$$UPD^DGENDBS(2,DFN,.DATA)
End DoDot:1
+21 QUIT
S IF $LENGTH(@DGDRS)+$LENGTH(DGDRD)<241
SET @DGDRS=@DGDRS_DGDRD
QUIT
+1 SET DGCT=DGCT+1
SET DGDRS="DR(1,2,"_DGCT_")"
SET @DGDRS=DGDRD
QUIT
701 ;;391;D SC7^DGRPV;1901;.301;S:X'="Y" Y=.313;.302;.313;.312;
702 ;;.361;D AAC1^DGLOCK2 S:DGAAC(1)']"" Y=361;.309;361;.323;D ^DGYZODS;S:'DGODS Y=.36265;11500.02;11500.03;.36265;S:X='"Y" Y="@72";.3626;@72;
703 ;;.3731;
1001 ;;.152;S:X="" Y="@101";.1651;.1653;.1654;.307;.1656;@101;
1002 ;;.153;S:X="" Y="@102";.1657:.1659;.16;@102;
1101 ;;.3611;.3612;.3614;.3615;
1102 ;;.306;
1103 ;;.322;
1104 ;;D VETTYPE^DGRPE1;D MSG^DGRPE1 S Y=0;@114;K DGRDCHG;D DR^DGRPE1;.302;.3721;D EFF^DGRPE1;D:$G(DGRDCHG) BULL^DGRPE1;K DGRDCHG;
MSG WRITE !,"Patient is not a veteran. Can't enter rated disabilities",!
QUIT
+1 ;
BULL ; Rated Disabilities update bulletin
+1 ;
+2 ; This bulletin has been disabled. DG*5.3*808
QUIT
+3 ;
+4 NEW DGBULL,DGLINE,DGMGRP,DGNAME,DIFROM,VA,VAERR,XMTEXT,XMSUB,XMDUZ
+5 SET DGMGRP=$ORDER(^XMB(3.8,"B","DGEN ELIGIBILITY ALERT",""))
+6 if 'DGMGRP
QUIT
+7 DO XMY^DGMTUTL(DGMGRP,0,1)
+8 SET DGNAME=$PIECE($GET(^DPT(DFN,0)),"^")
SET DGSSN=$PIECE($GET(^DPT(DFN,0)),"^",9)
+9 SET XMTEXT="DGBULL("
+10 SET XMSUB="RATED DISABILITY UPDATED"
+11 SET DGLINE=0
+12 DO LINE^DGEN("Patient: "_DGNAME,.DGLINE)
+13 DO LINE^DGEN("SSN: "_DGSSN,.DGLINE)
+14 DO LINE^DGEN("",.DGLINE)
+15 DO LINE^DGEN("Send updates to SC Disabilities to HEC via fax or HECAlert",.DGLINE)
+16 DO LINE^DGEN("Outlook mail group so that they can be entered into VHA's",.DGLINE)
+17 DO LINE^DGEN("Authoritative Database. SC Disability information entered directly",.DGLINE)
+18 DO LINE^DGEN("into VistA may be overlaid.",.DGLINE)
+19 DO ^XMD
+20 QUIT
DR ;
+1 KILL DGSCPC
+2 SET DGSCPC=$PIECE($GET(^DPT(DFN,.3)),U,2)
+3 SET DR(2,2.04)=".01;2;3"
+4 QUIT
EFF ;
+1 IF $GET(DGSCPC)=$PIECE($GET(^DPT(DFN,.3)),U,2)
QUIT
+2 SET DGFDA(2,DFN_",",.3014)="@"
+3 DO FILE^DIE("","DGFDA","DGERR")
+4 KILL DGFDA,DGSCPC
+5 QUIT
VETTYPE ;
+1 if $SELECT('$DATA(^DPT(DFN,"VET"))
SET Y="@114"
QUIT
+2 if '$SELECT('$DATA(^("TYPE"))
SET Y="@114"
+3 QUIT
DR207 ; DG*5.3*1085 - Prompt for PREFERRED LANGUAGE (#2.07,.02)
+1 ; DG*5.3*1093; Add X,Y to NEW variables below - the call to ^DIR uses these vars
+2 NEW DIR,DGFDA,DGLANGNM,DGERR,DGSUB,DGDATE,X,Y
+3 SET DGDATE=""
SET DGDATE=$ORDER(^DPT(DFN,.207,"B",DGDATE),-1)
+4 ;get the latest subscript
IF DGDATE'=""
SET DGSUB=$ORDER(^DPT(DFN,.207,"B",DGDATE,0))
+5 ;get PREFERRED LANGUAGE name
IF $GET(DGSUB)'=""
SET DGLANGNM=$$GET1^DIQ(2.07,DGSUB_","_DFN_",",.02)
+6 ;
+7 SET DIR("B")=$SELECT($GET(DGLANGNM)'="":DGLANGNM,1:"ENGLISH")
+8 SET DIR(0)="2.07,.02"
DO ^DIR
+9 ;
+10 IF Y["^"
WRITE $CHAR(7),!!,"No language was entered.",!
HANG 3
QUIT
+11 IF Y=""
QUIT
+12 ;if PREFERRED LANGUAGE is the same
if Y=$GET(DGLANGNM)
QUIT
+13 ;
+14 SET DGFDA(2.07,"+1,"_DFN_",",.01)=$$NOW^XLFDT()
+15 SET DGFDA(2.07,"+1,"_DFN_",",.02)=Y
+16 DO UPDATE^DIE("","DGFDA",,"DGERR")
+17 QUIT
+18 ;
DR104() ;DG*5.3*1111-Prompt for the PAGER NUMBER (#.135) field of the PATIENT file #2 only if currently populated
+1 ;Returns: 1 - processing of fields beyond the PAGER NUMBER should continue
+2 ; 0 - processing should not continue (e.g. the user is exiting or a timeout occurred)
+3 ; Quit if PAGER NUMBER field is not currently populated
+4 if $$GET1^DIQ(2,DFN,.135)=""
QUIT 1
+5 ;
+6 ; New input parameters for UPDATE^DIE call
+7 NEW DGFDA
+8 NEW DGERR
+9 NEW DIR
+10 ;
+11 ; New DIR output vars that are always returned
+12 ; Unprocessed user response
NEW X
+13 ; Processed user response
NEW Y
+14 ;
+15 ; New DIR output vars that are conditionally returned
+16 ;User time out
NEW DTOUT
+17 ;User entered caret (^)
NEW DUOUT
+18 ;User entered caret (^), pressed ENTER, or @ entered, or timed out
NEW DIRUT
+19 ;User entered two carets (^^)
NEW DIROUT
+20 ;
+21 ; Prompt for the PAGER NUMBER
+22 SET DIR(0)="2,.135"
DO ^DIR
KILL DIR
+23 SET DGFDA(2,DFN_",",.135)=Y
+24 ;
+25 ; Quit if TIMED READ (# OF SECONDS) maximum reached
+26 IF $DATA(DTOUT)
SET DGTMOT=1
QUIT 0
+27 ;
+28 ; Quit when ^ or ^^ is entered
+29 IF ($DATA(DUOUT))!($DATA(DIROUT))
QUIT 0
+30 ;
+31 ; If user wants to delete PAGER NUMBER, then ask user to verify deletion
+32 IF X["@"
SET DIR(0)="YA"
SET DIR("B")="NO"
SET DIR("A")="SURE YOU WANT TO DELETE? "
NEW X,Y
DO ^DIR
KILL DIR
+33 ;
+34 ; Quit if timeout or exit
+35 IF $DATA(DTOUT)
SET DGTMOT=1
QUIT 0
+36 IF ($DATA(DUOUT))!$DATA(DIROUT)
QUIT 0
+37 ;
+38 ; Quit if answered NO to SURE YOU WANT TO DELETE?
+39 IF (X["N")
WRITE " <NOTHING DELETED>"
QUIT 1
+40 ;
+41 ; Update PAGER NUMBER (#.135) field
+42 DO UPDATE^DIE("","DGFDA",,"DGERR")
+43 QUIT 1
+44 ;
+45 ; DG*5.3*1111 - code moved here from DGRPE due to size limitations of DGRPE
YN1316(DFN) ;Email address indicator - DG*5.3*865
+1 NEW %,RSLT
+2 SET DIE("NO^")=""
P1316 ;
+1 SET %=0
+2 WRITE !,"DOES THE PATIENT HAVE AN EMAIL ADDRESS? Y/N"
+3 DO YN^DICN
+4 ; DG*5.3*1111 - process a timeout
+5 IF $DATA(DTOUT)
SET DGTMOT=1
QUIT 0
+6 IF %=0
WRITE !," If the patient has a valid Email Address, please answer with 'Yes'.",!," If no Email Address please answer with 'No'."
GOTO P1316
+7 IF %=-1
WRITE !," EXIT NOT ALLOWED ??"
GOTO P1316
+8 SET RSLT=$SELECT(%=1:"Y",%=2:"N")
+9 NEW FDA,IENS
+10 if '$GET(DFN)
QUIT
+11 SET IENS=DFN_","
SET FDA(2,IENS,.1316)=RSLT
+12 DO FILE^DIE("","FDA")
+13 QUIT RSLT