DGPMGLC ;ALB/XAK,JDS,MJK,LM - G&L CORRECTIONS ;10 AUG 84 15:19
;;5.3;Registration;**36,59,170**;Aug 13, 1993
;
;
EN ;
I $D(DGPMPC) G KILL ; if provider change, only, does not make entry in corrections file.
I DGHNYT<16 N DGADTM,DFN S DFN=$P(^DGPM(DA,0),U,3),DGADTM=$S($D(^DGPM(+$P(^(0),U,14),0)):+^(0),1:"")
I DGHNYT=13!(DGHNYT=14) S IVD=$O(^DGPM("ATS",DFN,+$P(^DGPM(DA,0),"^",14),9999999.9999999-$P(^DGPM(DA,0),U))) I IVD S DGTS=$O(^DGPM("ATS",DFN,+$P(^DGPM(DA,0),"^",14),IVD,0)) I DGTS S DGOTS=$S($D(^DIC(45.7,+DGTS,0)):$P(^(0),U),1:"") Q:DGTS=X
S H=$P($H,",",2),H=DT+(H\3600/100)+(H\60#60/10000) I $D(DGIDX) S H=DGIDX,W=H\1 K ^DGS(43.5,"AGL",+$P(^DGS(43.5,H,0),U,8)\1,H) G BR
LOCK L ^DGS(43.5,H):1 I '$T!$D(^DGS(43.5,H)) L S H=H+.00001 G LOCK
S DGIDX=H,W=H\1,^DGS(43.5,H,0)=W,^DGS(43.5,"B",W,H)="",^DGS(43.5,"C",DFN,H)="",^(0)=$P(^DGS(43.5,0),"^",1,2)_"^"_H_"^"_($P(^(0),"^",4)+1),^DISV(DUZ,"^DGS(43.5,")=H L
BR ;
; -- get adm d/t
G 3:DGHNYT=3,3:DGHNYT=6,3:DGHNYT=9,2:DGHNYT=2,2:DGHNYT=5,2:DGHNYT=8,1:DGHNYT<10,FTS:DGHNYT=13,2:DGHNYT=14,FTS:DGHNYT=15,@DGHNYT
Z S Z=$E(X,1,12),Z=$$FMTE^XLFDT(Z,"5F"),Z=$TR(Z," ","0"),Z=$TR(Z,":") Q
1 ; ADM,XFR,DIS ENTERED
D Z S ^DGS(43.5,H,0)=W_"^"_DGHNYT_"^^"_Z_"^"_DFN_"^"_DGADTM_"^"_DUZ_U_$P(X,"."),^DGS(43.5,"AGL",$P(X,"."),H)="" K DGIDX,DGHNYT Q
2 ; ADM,XFR,DIS,FACILITY TS DELETED
N X S X=+^DGPM(DA,0) ; gets date/time of mvt
D Z S ^DGS(43.5,H,0)=W_"^"_DGHNYT_"^"_Z_"^^"_DFN_"^"_DGADTM_"^"_DUZ_U_$P(X,".")_$S(DGHNYT=5:U_X,1:""),^DGS(43.5,"AGL",$P(X,"."),H)="" K DGHNYT Q
3 ; ADM,XFR,DIS DATE EDITED
D Z,NUM S DGED=$S(DGED&(DGED<X):DGED,1:X)\1,^(0)=W_"^"_DGHNYT_"^"_$P(^DGS(43.5,H,0),"^",3)_"^"_Z_"^"_DFN_"^"_DGADTM_"^"_DUZ_U_DGED,^DGS(43.5,"AGL",DGED,H)="" K DGIDX,DGED,DGHNYT Q
10 ; ADM WARD EDITED
S ^DGS(43.5,H,0)=W_"^10^"_$S($D(DGOWD):DGOWD,1:"")_"^"_$S($D(^DIC(42,+X,0)):$P(^(0),"^",1),1:X)_"^"_DFN_"^"_DGADTM_"^"_DUZ_U_$P(DGADTM,"."),^DGS(43.5,"AGL",$P(DGADTM,"."),H)="" K DGOWD,DGIDX,DGHNYT Q
11 ; MAS TYPE EDITED
S L=+^DGPM(DA,0),^DGS(43.5,H,0)=W_"^11^"_$S($D(DGOTY):DGOTY,1:"")_"^"_$S($D(^DG(405.2,+X,0)):$P(^(0),"^",1),1:X)_"^"_DFN_"^"_DGADTM_"^"_DUZ_U_$P(L,".")_U_L,^DGS(43.5,"AGL",$P(L,"."),H)="" K DGOTY,DGIDX,DGHNYT Q
12 ; XFR WARD EDITED
S L=+^DGPM(DA,0),^DGS(43.5,H,0)=W_"^12^"_$S($D(DGOWD):DGOWD,1:"")_"^"_$S($D(^DIC(42,+X,0)):$P(^(0),"^",1),1:X)_"^"_DFN_"^"_DGADTM_"^"_DUZ_U_$P(L,".")_U_L,^DGS(43.5,"AGL",$P(L,"."),H)="" K DGOWD,DGIDX,DGHNYT Q
Q
FTS ; FACILITY TS
; 13 = ENTERED
; 14 = DELETED
; 15 = FACILITY TS DATE EDITED
;S IVD=$O(^DGPM("ATS",DFN,+$P(^DGPM(DA,0),"^",14),9999999.9999999-$P(^DGPM(DA,0),U))) S:IVD DGTS=$O(^DGPM("ATS",DFN,+$P(^DGPM(DA,0),"^",14),IVD,0)) S:DGTS DGOTS=$S($D(^DIC(45.7,+DGTS,0)):$P(^(0),U),1:"") Q:DGTS=X
I DGHNYT=15 D Z
S L=+^DGPM(DA,0),^DGS(43.5,H,0)=W_"^"_DGHNYT_"^"_$S(DGHNYT=15:$P(^DGS(43.5,H,0),"^",3),$D(DGOTS):DGOTS,1:"")_"^"_$S(DGHNYT=15:"",$D(^DIC(45.7,+X,0)):$P(^(0),"^",1),1:X)_"^"_DFN_"^"_DGADTM_"^"_DUZ_U_$P(L,".")_U_L
S ^DGS(43.5,"AGL",$P(L,"."),H)="" ; sets flag in G&L Corrections file
KILL K DGOTS,DGIDX,DGHNYT,DGTS,IVD Q
Q
NUM S DGX=X,%DT="",X=$P($P(^DGS(43.5,H,0),U,3),"@",1) D ^%DT S DGED=$P(+Y,"."),X=DGX K DGX Q
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDGPMGLC 3204 printed Nov 22, 2024@17:59:37 Page 2
DGPMGLC ;ALB/XAK,JDS,MJK,LM - G&L CORRECTIONS ;10 AUG 84 15:19
+1 ;;5.3;Registration;**36,59,170**;Aug 13, 1993
+2 ;
+3 ;
EN ;
+1 ; if provider change, only, does not make entry in corrections file.
IF $DATA(DGPMPC)
GOTO KILL
+2 IF DGHNYT<16
NEW DGADTM,DFN
SET DFN=$PIECE(^DGPM(DA,0),U,3)
SET DGADTM=$SELECT($DATA(^DGPM(+$PIECE(^(0),U,14),0)):+^(0),1:"")
+3 IF DGHNYT=13!(DGHNYT=14)
SET IVD=$ORDER(^DGPM("ATS",DFN,+$PIECE(^DGPM(DA,0),"^",14),9999999.9999999-$PIECE(^DGPM(DA,0),U)))
IF IVD
SET DGTS=$ORDER(^DGPM("ATS",DFN,+$PIECE(^DGPM(DA,0),"^",14),IVD,0))
IF DGTS
SET DGOTS=$SELECT($DATA(^DIC(45.7,+DGTS,0)):$PIECE(^(0),U),1:"")
if DGTS=X
QUIT
+4 SET H=$PIECE($HOROLOG,",",2)
SET H=DT+(H\3600/100)+(H\60#60/10000)
IF $DATA(DGIDX)
SET H=DGIDX
SET W=H\1
KILL ^DGS(43.5,"AGL",+$PIECE(^DGS(43.5,H,0),U,8)\1,H)
GOTO BR
LOCK LOCK ^DGS(43.5,H):1
IF '$TEST!$DATA(^DGS(43.5,H))
LOCK
SET H=H+.00001
GOTO LOCK
+1 SET DGIDX=H
SET W=H\1
SET ^DGS(43.5,H,0)=W
SET ^DGS(43.5,"B",W,H)=""
SET ^DGS(43.5,"C",DFN,H)=""
SET ^(0)=$PIECE(^DGS(43.5,0),"^",1,2)_"^"_H_"^"_($PIECE(^(0),"^",4)+1)
SET ^DISV(DUZ,"^DGS(43.5,")=H
LOCK
BR ;
+1 ; -- get adm d/t
+2 if DGHNYT=3
GOTO 3
if DGHNYT=6
GOTO 3
if DGHNYT=9
GOTO 3
if DGHNYT=2
GOTO 2
if DGHNYT=5
GOTO 2
if DGHNYT=8
GOTO 2
if DGHNYT<10
GOTO 1
if DGHNYT=13
GOTO FTS
if DGHNYT=14
GOTO 2
if DGHNYT=15
GOTO FTS
GOTO @DGHNYT
Z SET Z=$EXTRACT(X,1,12)
SET Z=$$FMTE^XLFDT(Z,"5F")
SET Z=$TRANSLATE(Z," ","0")
SET Z=$TRANSLATE(Z,":")
QUIT
1 ; ADM,XFR,DIS ENTERED
+1 DO Z
SET ^DGS(43.5,H,0)=W_"^"_DGHNYT_"^^"_Z_"^"_DFN_"^"_DGADTM_"^"_DUZ_U_$PIECE(X,".")
SET ^DGS(43.5,"AGL",$PIECE(X,"."),H)=""
KILL DGIDX,DGHNYT
QUIT
2 ; ADM,XFR,DIS,FACILITY TS DELETED
+1 ; gets date/time of mvt
NEW X
SET X=+^DGPM(DA,0)
+2 DO Z
SET ^DGS(43.5,H,0)=W_"^"_DGHNYT_"^"_Z_"^^"_DFN_"^"_DGADTM_"^"_DUZ_U_$PIECE(X,".")_$SELECT(DGHNYT=5:U_X,1:"")
SET ^DGS(43.5,"AGL",$PIECE(X,"."),H)=""
KILL DGHNYT
QUIT
3 ; ADM,XFR,DIS DATE EDITED
+1 DO Z
DO NUM
SET DGED=$SELECT(DGED&(DGED<X):DGED,1:X)\1
SET ^(0)=W_"^"_DGHNYT_"^"_$PIECE(^DGS(43.5,H,0),"^",3)_"^"_Z_"^"_DFN_"^"_DGADTM_"^"_DUZ_U_DGED
SET ^DGS(43.5,"AGL",DGED,H)=""
KILL DGIDX,DGED,DGHNYT
QUIT
10 ; ADM WARD EDITED
+1 SET ^DGS(43.5,H,0)=W_"^10^"_$SELECT($DATA(DGOWD):DGOWD,1:"")_"^"_$SELECT($DATA(^DIC(42,+X,0)):$PIECE(^(0),"^",1),1:X)_"^"_DFN_"^"_DGADTM_"^"_DUZ_U_$PIECE(DGADTM,".")
SET ^DGS(43.5,"AGL",$PIECE(DGADTM,"."),H)=""
KILL DGOWD,DGIDX,DGHNYT
QUIT
11 ; MAS TYPE EDITED
+1 SET L=+^DGPM(DA,0)
SET ^DGS(43.5,H,0)=W_"^11^"_$SELECT($DATA(DGOTY):DGOTY,1:"")_"^"_$SELECT($DATA(^DG(405.2,+X,0)):$PIECE(^(0),"^",1),1:X)_"^"_DFN_"^"_DGADTM_"^"_DUZ_U_$PIECE(L,".")_U_L
SET ^DGS(43.5,"AGL",$PIECE(L,"."),H)=""
KILL DGOTY,DGIDX,DGHNYT
QUIT
12 ; XFR WARD EDITED
+1 SET L=+^DGPM(DA,0)
SET ^DGS(43.5,H,0)=W_"^12^"_$SELECT($DATA(DGOWD):DGOWD,1:"")_"^"_$SELECT($DATA(^DIC(42,+X,0)):$PIECE(^(0),"^",1),1:X)_"^"_DFN_"^"_DGADTM_"^"_DUZ_U_$PIECE(L,".")_U_L
SET ^DGS(43.5,"AGL",$PIECE(L,"."),H)=""
KILL DGOWD,DGIDX,DGHNYT
QUIT
+2 QUIT
FTS ; FACILITY TS
+1 ; 13 = ENTERED
+2 ; 14 = DELETED
+3 ; 15 = FACILITY TS DATE EDITED
+4 ;S IVD=$O(^DGPM("ATS",DFN,+$P(^DGPM(DA,0),"^",14),9999999.9999999-$P(^DGPM(DA,0),U))) S:IVD DGTS=$O(^DGPM("ATS",DFN,+$P(^DGPM(DA,0),"^",14),IVD,0)) S:DGTS DGOTS=$S($D(^DIC(45.7,+DGTS,0)):$P(^(0),U),1:"") Q:DGTS=X
+5 IF DGHNYT=15
DO Z
+6 SET L=+^DGPM(DA,0)
SET ^DGS(43.5,H,0)=W_"^"_DGHNYT_"^"_$SELECT(DGHNYT=15:$PIECE(^DGS(43.5,H,0),"^",3),$DATA(DGOTS):DGOTS,1:"")_"^"_$SELECT(DGHNYT=15:"",$DATA(^DIC(45.7,+X,0)):$PIECE(^(0),"^",1),1:X)_"^"_DFN_"^"_DGADTM_"^"_DUZ_U_$PIECE(L,".")_U_L
+7 ; sets flag in G&L Corrections file
SET ^DGS(43.5,"AGL",$PIECE(L,"."),H)=""
KILL KILL DGOTS,DGIDX,DGHNYT,DGTS,IVD
QUIT
+1 QUIT
NUM SET DGX=X
SET %DT=""
SET X=$PIECE($PIECE(^DGS(43.5,H,0),U,3),"@",1)
DO ^%DT
SET DGED=$PIECE(+Y,".")
SET X=DGX
KILL DGX
QUIT
+1 ;