[613] | 1 | DGPMDDCN ;ALB/MRL - DETERMINE INPATIENT X-REF'S; 9 FEB 89
|
---|
| 2 | ;;5.3;Registration;**54,498**;Aug 13, 1993
|
---|
| 3 | ;
|
---|
| 4 | 1 ;
|
---|
| 5 | I $S($D(DGPMT):1,('$D(DA)#2):1,'$D(DGPMDDF):1,'$D(DGPMDDT):1,1:0) G KX
|
---|
| 6 | N DFN S DFN=+$P(^DGPM(+DA,0),"^",3) I '$D(^DPT(DFN,0)) G KX
|
---|
| 7 | I 'DGPMDDT D @("K"_+DGPMDDF) G Q
|
---|
| 8 | D INPTCK
|
---|
| 9 | I $S('VAWD:1,1:$P(VAWD,"^",2)="") D G Q
|
---|
| 10 | . N DGWD
|
---|
| 11 | . D FIND^DGPMDDLD
|
---|
| 12 | . I DGWD,($P(DGWD,"^",2)]"") D EN^DGPMDDLD Q
|
---|
| 13 | . K X
|
---|
| 14 | D @("S"_+DGPMDDF) G Q
|
---|
| 15 | ;
|
---|
| 16 | KX K X
|
---|
| 17 | Q D KVAR^VADPT30 K DGPMX,DGPMX1,DGFLD,DGPMDD,DGPMDDF,DGPMDDT,I Q
|
---|
| 18 | ;
|
---|
| 19 | S6 ; -- ward x-ref
|
---|
| 20 | S DGFLD=.1 I $D(^DPT(DFN,.1)) S DGPMX=^(.1) K:$D(^(.105)) ^DGPM("CN",DGPMX,+^(.105)) D KILL
|
---|
| 21 | S DGPMX=$P(VAWD,"^",2),^DGPM("CN",DGPMX,+$P(^DGPM(+VAMV,0),"^",14))=""
|
---|
| 22 | D SET
|
---|
| 23 | S DGFLD=.102 I $D(^DPT(DFN,.102)) S DGPMX=^(.102) D KILL
|
---|
| 24 | S DGPMX=+VAMV D SET:DGPMX
|
---|
| 25 | S DGFLD=.105 I $D(^DPT(DFN,.105)) S DGPMX=^(.105) D KILL
|
---|
| 26 | S DGPMX=+$P(^DGPM(+VAMV,0),"^",14) D SET:DGPMX
|
---|
| 27 | Q
|
---|
| 28 | ;
|
---|
| 29 | K6 ;
|
---|
| 30 | I X S W=$S($D(^DIC(42,+X,0)):$P(^(0),"^",1),1:"") I W]"" K ^DGPM("CN",W,+$P(^DGPM(DA,0),"^",14)) I $D(^DPT(DFN,.1)),^(.1)=W S DGPMX=W,DGFLD=.1 D KILL
|
---|
| 31 | K W
|
---|
| 32 | I $D(^DPT(DFN,.102)),^(.102)=DA S DGPMX=DA,DGFLD=.102 D KILL
|
---|
| 33 | I $D(^DPT(DFN,.105)),^(.105)=$P(^DGPM(DA,0),"^",14) S DGPMX=$P(^DGPM(DA,0),"^",14),DGFLD=.105 D KILL
|
---|
| 34 | Q
|
---|
| 35 | ;
|
---|
| 36 | S7 ; -- room-bed x-ref
|
---|
| 37 | I $D(^DPT(DFN,.108)) S DGPMX=^(.108),DGFLD=.108 D KILL F DGPMX1=0:0 S DGPMX1=+$O(^DGPM("ARM",DGPMX,DGPMX1)) D CHK I $T K ^DGPM("ARM",DGPMX,DGPMX1) Q
|
---|
| 38 | S DGFLD=.101 I $D(^DPT(DFN,.101)) S DGPMX=^(.101) D KILL
|
---|
| 39 | S DGPMX=$P(VARM,"^",2) D SET
|
---|
| 40 | I +VARM S DGFLD=.108,DGPMX=+VARM,^DGPM("ARM",DGPMX,VAWDA)=0 D SET
|
---|
| 41 | Q
|
---|
| 42 | ;
|
---|
| 43 | K7 ;
|
---|
| 44 | I $D(^DPT(DFN,.108)),X=+^(.108) S DGPMX=X I $D(^DGPM("ARM",DGPMX,DA)) K ^(DA) S DGFLD=.108 D KILL
|
---|
| 45 | I X S R=$S($D(^DG(405.4,+X,0)):$P(^(0),"^",1),1:"") I R]"",$D(^DPT(DFN,.101)),^(.101)=R S DGPMX=R,DGFLD=.101 D KILL
|
---|
| 46 | Q
|
---|
| 47 | ;
|
---|
| 48 | CHK ;
|
---|
| 49 | I '$D(^DGPM(DGPMX1,0)) Q
|
---|
| 50 | I $P(^DGPM(DGPMX1,0),"^",3)=DFN Q
|
---|
| 51 | Q
|
---|
| 52 | ;
|
---|
| 53 | S8 ; -- doc x-ref
|
---|
| 54 | S DGFLD=.104 I $D(^DPT(DFN,.104)) S DGPMX=+^(.104) D KILL
|
---|
| 55 | S DGPMX=+VAPP D SET:DGPMX
|
---|
| 56 | Q
|
---|
| 57 | ;
|
---|
| 58 | K8 ;
|
---|
| 59 | I X,$D(^DPT(DFN,.104)),^(.104)=X S DGPMX=X,DGFLD=.104 D KILL
|
---|
| 60 | Q
|
---|
| 61 | ;
|
---|
| 62 | S9 ; -- tr. spec x-ref
|
---|
| 63 | S DGFLD=.103 I $D(^DPT(DFN,.103)) S DGPMX=+^(.103) D KILL
|
---|
| 64 | S DGPMX=+VATS D SET:DGPMX
|
---|
| 65 | Q
|
---|
| 66 | ;
|
---|
| 67 | K9 ;
|
---|
| 68 | I X,$D(^DPT(DFN,.103)),^(.103)=X S DGPMX=X,DGFLD=.103 D KILL
|
---|
| 69 | Q
|
---|
| 70 | ;
|
---|
| 71 | S19 ; -- attend x-ref
|
---|
| 72 | S DGFLD=.1041 I $D(^DPT(DFN,.1041)) S DGPMX=+^(.1041) D KILL
|
---|
| 73 | S DGPMX=+VAAP D SET:DGPMX
|
---|
| 74 | Q
|
---|
| 75 | ;
|
---|
| 76 | K19 ;
|
---|
| 77 | I X,$D(^DPT(DFN,.1041)),^(.1041)=X S DGPMX=X,DGFLD=.1041 D KILL
|
---|
| 78 | Q
|
---|
| 79 | ;
|
---|
| 80 | S41 ; -- fac dir x-ref (AFD)
|
---|
| 81 | S DGFLD=.109 S DGPMX=$P($G(^DPT(DFN,.109)),"^",1) D KILL:(DGPMX'="")
|
---|
| 82 | S DGPMX=$P(VAFD,"^",1) D SET:(DGPMX'="")
|
---|
| 83 | Q
|
---|
| 84 | ;
|
---|
| 85 | K41 ;
|
---|
| 86 | I X'="",$P($G(^DPT(DFN,.109)),"^",1)=X S DGPMX=X,DGFLD=.109 D KILL
|
---|
| 87 | Q
|
---|
| 88 | ;
|
---|
| 89 | SET ; -- generic set x-ref logic
|
---|
| 90 | Q:DGPMX']""
|
---|
| 91 | N X,DA S DA=DFN,(^DPT(DA,DGFLD),X)=DGPMX
|
---|
| 92 | F DGIX=0:0 S DGIX=$O(^DD(2,DGFLD,1,DGIX)) Q:'DGIX X ^(DGIX,1) S X=DGPMX
|
---|
| 93 | K DGIX Q
|
---|
| 94 | ;
|
---|
| 95 | KILL ; -- generic kill x-ref logic
|
---|
| 96 | Q:DGPMX']""
|
---|
| 97 | N X,DA S DA=DFN,X=DGPMX
|
---|
| 98 | F DGIX=0:0 S DGIX=$O(^DD(2,DGFLD,1,DGIX)) Q:'DGIX X ^(DGIX,2) S X=DGPMX
|
---|
| 99 | K DGIX,^DPT(DA,DGFLD) Q
|
---|
| 100 | ;
|
---|
| 101 | CN ; -- set "CN" x-ref for file #2 equal to corresp adm mv
|
---|
| 102 | N DFN,VAMV0,VAMV,VAMT,VAID,DGX
|
---|
| 103 | S DGX=X D NOW^%DTC S VAID=9999999.999999-%,DFN=DA D MV^VADPT30
|
---|
| 104 | I $P(VAMV0,U,2),$P(VAMV0,U,2)'=3 S ^DPT("CN",DGX,DA)=$P(VAMV0,"^",14)
|
---|
| 105 | Q
|
---|
| 106 | ;
|
---|
| 107 | RESET ; -- reset ^DPT nodes and x-refs
|
---|
| 108 | ; input: DFN
|
---|
| 109 | ;
|
---|
| 110 | ; -- kill data and x-refs
|
---|
| 111 | I $D(^DPT(DFN,.105)),$D(^(.1)),^(.1)]"" K ^DGPM("CN",^(.1),+^(.105))
|
---|
| 112 | I $D(^DPT(DFN,.108)) S DGPMX=^(.108),DGFLD=.108 D KILL F DGPMX1=0:0 S DGPMX1=+$O(^DGPM("ARM",DGPMX,DGPMX1)) D CHK I $T K ^DGPM("ARM",DGPMX,DGPMX1) Q
|
---|
| 113 | F DGFLD=.1,.101,.102,.103,.104,.1041,.105,.109 I $D(^DPT(DFN,DGFLD)) S DGPMX=^(DGFLD) D KILL
|
---|
| 114 | ; -- reset data and x-refs
|
---|
| 115 | D INPTCK
|
---|
| 116 | I $S('VAWD:1,1:$P(VAWD,"^",2)="") D G RESETQ
|
---|
| 117 | . N DGWD
|
---|
| 118 | . D FIND^DGPMDDLD
|
---|
| 119 | . I DGWD,($P(DGWD,"^",2)]"") D RESET^DGPMDDLD
|
---|
| 120 | D SETALL
|
---|
| 121 | RESETQ D KVAR^VADPT30 K DGPMX,DGPMX1,DGFLD,I Q
|
---|
| 122 | ;
|
---|
| 123 | SETALL D S6,S7,S8,S9,S19,S41 Q
|
---|
| 124 | ;
|
---|
| 125 | XREF I $D(^DGPM(DA,0)),$P(^(0),"^",2)=4!($P(^(0),"^",2)=5) G XREF^DGPMDDLD
|
---|
| 126 | Q:$D(DGPMT)
|
---|
| 127 | I $D(^DGPM(DA,0)) N DFN S DFN=+$P(^(0),U,3) D RESET
|
---|
| 128 | Q
|
---|
| 129 | ;
|
---|
| 130 | INPTCK ; check to see if patient is current inpatient
|
---|
| 131 | D NOW^%DTC S VAPRT=0,VATD=9999999.999999-%,(VACN,VAPRC)=1
|
---|
| 132 | S VA200="" D VAR^VADPT30 K VA200
|
---|
| 133 | Q
|
---|