Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: DGRPP

DGRPP.m

Go to the documentation of this file.
  1. DGRPP ;ALB/MRL,AEG,LBD,ASF,LEG,RN - REGISTRATION SCREEN PROCESSOR ;Apr 05, 2020@15:16
  1. ;;5.3;Registration;**92,147,343,404,397,489,689,688,828,797,871,997,1014,1040,1027**;Aug 13, 1993;Build 70
  1. ;
  1. ;DGRPS : Screen to edit
  1. ;DGRPSEL : If screen 9 (income screening) set to allowable selections
  1. ; (V=Veteran, S=Spouse, D=Dependents)
  1. ;DGRPSELT : If screen 9, type selected (V, S, or D or all if none specified)
  1. ;DGRPAN : Selectable items on screen for edit (user input)
  1. ;DGRPANP : Selectable items for print on page footer - i.e. 1-3
  1. ;DGRPANN : Selected item(s) extrapolated (screen_item)
  1. ;
  1. ;
  1. EN ;
  1. D:'$$BEGUPLD^DGENUPL3(DFN)
  1. .D UNLOCK^DGENPTA1(DFN)
  1. .D CKUPLOAD^DGENUPL3(DFN)
  1. .I $$LOCK^DGENPTA1(DFN)
  1. D ENDUPLD^DGENUPL3(DFN)
  1. ; DG*5.3*1040 - If timed out, clean screen with W @IOF, use variable DGRPOUT to track timeout and exit
  1. I $D(DTOUT)!(+$G(DGTMOT)) S DGRPOUT=1 W @IOF,!!! G QQ
  1. ;jam; Patch DG*5.3*997 - include screen 11.5 group 1 to be editable when in View Reg option (DGRPV=1)
  1. D Q1,WHICH^DGRPP1 W ! K DGRP S DGRPAN="" F I=1:1:$L(DGRPVV(DGRPS)) I $S('DGRPV:1,DGRPS=6:I=1!(I=2)!(I=3),DGRPS=11:I=5,DGRPS=11.5:I=1!(I=2),1:0) S:'$E(DGRPVV(DGRPS),I) DGRPAN=DGRPAN_I_"," ;LEG; DG*5.3*1014 added I=2 for <11.5>
  1. D STR^DGRPP1 F I=$Y:1:20 W !
  1. ; remove COPY option DG*5.3*688
  1. I ("8^9"[DGRPS),($G(DGEFDT)'=DT) S Z="E" D W W "=ENTER new "_(DGISYR+1)_" data,"
  1. S Z="<RET>" D W W " to ",$S(DGRPS<DGRPLAST:"CONTINUE",1:"QUIT"),", "
  1. I DGRPAN]"" S Z=DGRPANP D W D
  1. . I '$G(DGRPV) W " or " S Z="ALL" D W
  1. . ; jam; DG*5.3*997 - add screen 11.5 to allow group 1 to be expanded in View Reg option - DGRPV=1)
  1. . W " to "_$S('$G(DGRPV):"EDIT, ",DGRPS=6!(DGRPS=11)!(DGRPS=11.5):"EXPAND, ",1:"")
  1. S DGRPOUT=0,Z="^N" D W W " for screen N or " S Z="'^'" D W W " to QUIT" I DGRPSEL=""!(DGRPVV(9)'["0")!+$G(DGRPV) W ": "
  1. I DGRPSEL]"" D MOREHLP^DGRPP1
  1. G:$E(IOST,1,2)="P-" NEXT ;RGB/VM 4/28/10 Just go to next screen for non-interactive jobs
  1. R DGRPANN:DTIME S:'$T DGRPOUT=1 I DGRPANN']"",'DGRPOUT G NEXT
  1. ; DG*5.3*1040 - If timed out, clean screen with W @IOF, use variable DGRPOUT to track timeout and exit
  1. I +$G(DGRPOUT) W @IOF,!!! G QQ
  1. I $E(DGRPANN)="E",$G(DGNOBUCK),("8^9"[DGRPS) D
  1. .S DGNOCOPY=1
  1. . ; remove COPY option DG*5.3*688
  1. .S DGRPANN=U_DGRPS,DGRPVV(9)="000",DGRPVV(8)="00",DGIAINEW=1
  1. JUMP ;
  1. G:DGRPANN="^" Q G JUMP^DGRPP1:DGRPANN?1"^".N.".".N.".".N I DGRPOUT!(DGRPANN?1"^".E) G Q
  1. S (DGRPANN,X)=$$UPPER^DGUTL(DGRPANN)
  1. I $E(DGRPANN)="A" S X=DGRPANN,Z="^ALL" D IN^DGHELP I %'=-1 S DGRPANN=DGRPANP
  1. ;LEG; DG*5.3*997 ; add screen 11.5
  1. I DGRPANN'?1N.E D ^DGRPH G:DGRPS'=1.1&(DGRPS'=11.5) @("^DGRP"_DGRPS) G:DGRPS=1.1 ^DGRPCADD G:DGRPS=11.5 ^DGRP11A
  1. S DGDR="" F I=1:1 S DGCH=$P(DGRPANN,",",I) Q:DGCH']""!($L(DGCH)>5) D CHOICE
  1. I DGDR']"" D ^DGRPH S X=DGRPS G SCRX
  1. D ^DGRPE G QQ:'$D(^DPT(DFN,0)) S X=DGRPS G SCRX
  1. Q I 'DGELVER D:$S(DGRPOUT:0,'$D(DGRPV):0,'DGRPV:1,1:0) LT^DGRPP1
  1. K DGDEP,DGINC,DGINR,DGMTC,DGMTED,DGREL,DGTOT,DGSP
  1. K DGCH,DGGTOT,DGIRI,DGPRI,DGRPSE1,DGNOCOPY
  1. D SENSCHK
  1. ;DG*5.3*1027 Setting default values for DGDONE and DGDONE2 used in DGRPC
  1. N DGDONE,DGDONE2 S DGDONE=0,DGDONE2=0
  1. I 'DGRPV S DGEDCN=1 D ^DGRPC K DGEDCN
  1. QQ K DGRPNA,DGRPS,DGRPTYPE,DGRPU,DGRPV,DGRPVV,DGRPW,DGVI,DGVO,DGRPCM,DGELVER,DGRPLAST
  1. Q1 K %DT,C,DGA,DGA1,DGA2,DGAD,DGDR,DGRP,DGRPAG,DGRPAN,DGRPANN,DGRPANP,DGRPD,DGRPSEL,DGRPSELT,DGRPVR,DGRPX,DGAAC
  1. ; DG*5.3*1040 - clean-up variable DGTMOT
  1. K DIRUT,DUOUT,DTOUT,DGTMOT
  1. K DIC,I,I1,I2,I3,J,X,X1,X2,X3,Y,Z,Z1 I $D(DFN)#2,DFN]"" S:$D(^DPT(DFN,0)) DA=DFN
  1. Q
  1. ;
  1. SENSCHK ; check whether patient record should be made sensitive
  1. N ELIG,FLAG,X
  1. S ELIG=0,FLAG=0
  1. I '$D(^DPT($G(DFN),0)) Q ; patient not defined
  1. I $D(^DGSL(38.1,DFN,0)) Q ; patient already in dg security log file
  1. S X=$S($D(^DPT(DFN,"TYPE")):+^("TYPE"),1:"") I $D(^DG(391,+X,0)),$P(^(0),"^",4) D SEC Q:FLAG
  1. F S ELIG=$O(^DPT(DFN,"E",ELIG)) Q:'ELIG D Q:FLAG
  1. . S X=$G(^DIC(8,ELIG,0))
  1. . I $P(X,"^",12) D SEC
  1. Q
  1. ;
  1. SEC ;if patient type says make record sensitive, add to security log file
  1. K DD,DO S DIC="^DGSL(38.1,",(X,DINUM)=DFN,DIC(0)="L",DIC("DR")="2///1;3////"_DUZ_";4///NOW;" D FILE^DICN
  1. I $D(^DGSL(38.1,DFN,0)) W !!,"===> Record has been classified as sensitive." S FLAG=1
  1. K DIC,X,DINUM,DA,DD,DO,Y
  1. Q
  1. ;
  1. CHOICE ;parse out which items were selected for edit
  1. ;
  1. ;DGCH=choice to be parsed (either number or number-number)
  1. ;
  1. N DGFL S DGFL=0
  1. I DGCH["-" Q:DGCH'?1.2N1"-"1.2N!($P(DGCH,"-",2)>17) F J=$P(DGCH,"-",1):1:$P(DGCH,"-",2) I DGRPAN[(J_",") D:(DGRPS=9) SCR9 I 'DGFL S DGDR=DGDR_(DGRPS*100+J)_","
  1. I DGCH'["-",DGCH?1.2N,(DGRPAN[(DGCH_",")) S DGDR=DGDR_(DGRPS*100+DGCH)_","
  1. Q
  1. ;
  1. NEXT ;find next available screen...goto
  1. I DGRPS=DGRPLAST G Q ;last screen and return...quit
  1. S X=DGRPLAST
  1. F I=DGRPS+1:1 S J=$E(DGRPVV,I) Q:J']"" I 'J S X=I Q
  1. I DGRPS=1 S X=1.1
  1. ;LEG; DG*5.3*997; added screen 11.5
  1. I DGRPS=11 S X=11.5
  1. I DGRPS=11.5 S X=12
  1. SCRX ;goto screen X
  1. I X[".",X'=1.1,X'=11.5 S X=$P(X,".",1) ;ASF; DG*5.3*997 ; Added screen 11.5
  1. G:X=1.1 ^DGRPCADD
  1. ;ASF; DG*5.3*997; add condition for 11.5
  1. G:X=11.5 ^DGRP11A
  1. G:(X'=1.1)&(X'=11.5) @("^DGRP"_X) ;goto next available screen;
  1. W ;write highlighted text on screen (if parameter on)
  1. I IOST="C-QUME",$L(DGVI)'=2 W Z
  1. E W @DGVI,Z,@DGVO
  1. Q
  1. ;
  1. SCR9 ; see if MT is completed. Allow only selective editing if so
  1. I 'DGMTC Q
  1. I '$D(DGRPSELT) S:DGMTC=1 DGFL=1 Q ;if no non-mt dependents
  1. I DGRPSELT="S",$D(DGMTC("S")) Q
  1. I DGRPSELT="D",$D(DGMTC("D")) Q
  1. S DGFL=1
  1. Q