46 lines
2.3 KiB
Mathematica
46 lines
2.3 KiB
Mathematica
GMTSRS1B ; SLC/KER - Component Structure Resequence 2 ; 02/11/2003
|
|
;;2.7;Health Summary;**62**;Oct 20, 1995
|
|
;
|
|
Q
|
|
RES(ARY) ; Reset Input Array - .ARY
|
|
N GMTSI,GMTSC,GMTSI2,GMTSC2,GMTS S (GMTSI,GMTSC)=0
|
|
F S GMTSI=$O(ARY(GMTSI)) Q:+GMTSI=0 D
|
|
. S:$L($G(ARY(GMTSI))) GMTS(GMTSI)=$G(ARY(GMTSI))
|
|
. S:$L($G(ARY(GMTSI,0))) GMTS(GMTSI,0)=$G(ARY(GMTSI,0))
|
|
. S GMTSC=0 F S GMTSC=$O(ARY(GMTSI,GMTSC)) Q:+GMTSC=0 D
|
|
. . I +GMTSC=0 S GMTS(GMTSI,0)=$G(ARY(GMTSI,+GMTSC)) Q
|
|
. . S GMTS(GMTSI,GMTSC)=$G(ARY(GMTSI,GMTSC))
|
|
S (GMTSI,GMTSC,GMTSI2,GMTSC2)=0 K ARY
|
|
F S GMTSI=$O(GMTS(GMTSI)) Q:+GMTSI=0 D
|
|
. S GMTSI2=+($G(GMTSI2))+1 S:$L($G(GMTS(GMTSI))) ARY(GMTSI2)=$G(GMTS(GMTSI))
|
|
. S:$L($G(GMTS(GMTSI,0))) ARY(GMTSI2,0)=$G(GMTS(GMTSI,0))
|
|
. S (GMTSC,GMTSC2)=0 F S GMTSC=$O(GMTS(GMTSI,GMTSC)) Q:+GMTSC=0 D
|
|
. . S GMTSC2=+($G(GMTSC2))+1,ARY(GMTSI2,GMTSC2)=$G(GMTS(GMTSI,GMTSC))
|
|
Q
|
|
;
|
|
DIS(ARY) ; Display Array - .ARY
|
|
N GMTSI,GMTSCMP S GMTSI=0
|
|
F S GMTSI=$O(ARY(GMTSI)) Q:+GMTSI=0 D
|
|
. S GMTSCMP=$G(ARY(GMTSI)) W !,$J(GMTSI,4)," ",GMTSCMP
|
|
Q
|
|
;
|
|
INA(GMTST,ARY) ; Creates Input Array
|
|
N DA,GMTSS,GMTSC,GMTSI,GMTSVAL,GMTSPTR,GMTSFRT,GMTSCRT,GMTSFFRT
|
|
N GMTSFCRT,GMTSRT,GMTSUB,GMTSTYP,GMTSNN,GMTSNC,GMTSNR,GMTSCMP
|
|
N GMTSCMPI,GMTSND,GMTSNE
|
|
S DA(1)=+($G(GMTST)) Q:+DA(1)'>0 Q:'$D(^GMT(142,+DA(1)))
|
|
S (GMTSS,GMTSC,GMTSI)=0 F S GMTSI=$O(^GMT(142,DA(1),1,GMTSI)) Q:+GMTSI=0 D
|
|
. S GMTSVAL=$G(^GMT(142,DA(1),1,GMTSI,0)),GMTSCMPI=+($P(GMTSVAL,"^",2))
|
|
. K ^GMT(142,"AE",+GMTSCMPI,DA(1),GMTSI) S GMTSCMP=$P($G(^GMT(142.1,+GMTSCMPI,0)),"^",9)
|
|
. S:'$L(GMTSCMP) GMTSCMP=$E($P($G(^GMT(142.1,+($P(GMTSVAL,"^",2)),0)),"^",1),1,20)
|
|
. Q:'$L(GMTSCMP) S GMTSS=+($G(GMTSS))+1,ARY(GMTSS)=GMTSCMP,INA(GMTSS)=GMTSCMP
|
|
. S ARY(GMTSS,0)="^GMT(142,DA(2),1,DA(1),0)=(DA(1)_""^"_$P(GMTSVAL,"^",2,299)_""")"
|
|
. S INA(GMTSS,0)="^GMT(142,DA(2),1,DA(1),0)=(DA(1)_""^"_$P(GMTSVAL,"^",2,299)_""")"
|
|
. S DA=GMTSI,GMTSNN="^GMT(142,"_DA(1)_",1,"_DA_",1)",GMTSNC="^GMT(142,"_DA(1)_",1,"_DA_",1,"
|
|
. S GMTSC=0 F S GMTSNN=$Q(@GMTSNN) Q:'$L(GMTSNN)!(GMTSNN'[GMTSNC) D
|
|
. . S GMTSNR="^GMT(142,DA(2),1,DA(1),1,",GMTSNE=$P(GMTSNN,",",6,299)
|
|
. . S:$E(GMTSNE,1)="0" GMTSNR=GMTSNR_"0)" S:+GMTSNE>0 GMTSNR=GMTSNR_"DA,"_$P(GMTSNE,",",2,299)
|
|
. . Q:+GMTSNE'>0&($E(GMTSNE,1)'="0") S GMTSND=""""_@GMTSNN_"""",GMTSC=+($G(GMTSC))+1
|
|
. . S ARY(GMTSS,GMTSC)=GMTSNR_"="_GMTSND,INA(GMTSS,GMTSC)=GMTSNR_"="_GMTSND
|
|
Q
|