1 | IMRXOR ;ISC-SF/JLI,HCIOFO/FT-XOR ENCRYPTION FOR IMR POINTERS ;5/22/95 12:12
|
---|
2 | ;;2.1;IMMUNOLOGY CASE REGISTRY;;Feb 09, 1998
|
---|
3 | I '$D(^XUSEC("IMRA",DUZ)) S IMRLOC="IMRXOR" D ACESSERR^IMRERR,H^XUS
|
---|
4 | EN1 ; entry point from post-init
|
---|
5 | I '$D(IMRSTN) D IMROPN Q:'$D(IMRSTN)
|
---|
6 | XOR S IMRXORZ="" I X'?1N.N S IMRXORZ=X,X="" F IMRXORY=0:0 S IMRXORX2=$E(IMRXORZ) Q:IMRXORX2'?1N S X=X_IMRXORX2,IMRXORZ=$E(IMRXORZ,2,99)
|
---|
7 | S (IMRXORX2,IMRXORX4)=+X,(IMRXORA,IMRXORB)=0,IMRXORN=7
|
---|
8 | B17 S IMRXORM="0000^0001^0010^0011^0100^0101^0110^0111^1000^1001^1010^1011^1100^1101^1110^1111^"
|
---|
9 | S X=0 F IMRXORI=0:1 S IMRXOR2=IMRXORX2#16,IMRXORX2=IMRXORX2\16 D XOR1 S IMRXORB=IMRXORB+IMRXOR2 I (IMRXORB=IMRXORX4)&(IMRXORI>IMRXORN) Q
|
---|
10 | S X=X_IMRXORZ
|
---|
11 | K IMRXOR2,IMRXOR3,IMRXOR4,IMRXORM,IMRXORI,IMRXORA,IMRXORB,IMRXORJ,IMRXORX,IMRXORX2,IMRXORX4,IMRXORZ,IMRLOC,IMRXORN,IMRXORY
|
---|
12 | Q
|
---|
13 | XOR1 ;
|
---|
14 | S IMRXOR3="1101",IMRXOR4=$P(IMRXORM,"^",IMRXOR2+1),IMRXORX="" F IMRXORJ=1:1:4 S IMRXORX=IMRXORX_($E(IMRXOR3,IMRXORJ)'=$E(IMRXOR4,IMRXORJ))
|
---|
15 | S IMRXORX=$F(IMRXORM,IMRXORX),IMRXORX=IMRXORX/5-1
|
---|
16 | I IMRXORI>0 F IMRXORJ=1:1:IMRXORI S IMRXORX=IMRXORX*16,IMRXOR2=IMRXOR2*16
|
---|
17 | S X=X+IMRXORX
|
---|
18 | Q
|
---|
19 | IMROPN ;
|
---|
20 | I $D(^IMR(158.9,1,0)) S IMRSTN=$P(^(0),U),IMRSTN=$P(^DIC(4,+IMRSTN,99),U) Q
|
---|
21 | Q
|
---|
22 | SPTNAME ; set logic for Activate 'Name' Pointer field
|
---|
23 | ; called from ^DD(158.9,.07,1,1,1)
|
---|
24 | Q:+$P($G(^IMR(158.9,D0,0)),U,7)=0
|
---|
25 | F IMRI=0:0 S IMRI=$O(^IMR(158,IMRI)) Q:IMRI'>0 S X=+^(IMRI,0) D IMRXOR I $D(^DPT(X,0)) S ^IMR(158,IMRI,103)=X,^IMR(158,"BP",X,IMRI)=""
|
---|
26 | K IMRI
|
---|
27 | Q
|
---|
28 | KPTNAME ; kill logic for Activate 'Name' Pointer field
|
---|
29 | ; called from ^DD(158.9,.07,1,1,2)
|
---|
30 | F IMRI=0:0 S IMRI=$O(^IMR(158,IMRI)) Q:IMRI'>0 K ^(IMRI,103)
|
---|
31 | K ^IMR(158,"BP"),IMRI
|
---|
32 | Q
|
---|
33 | A17 ;
|
---|
34 | S IMRXORZ="" I X'?1N.N S IMRXORZ=X,X="" F IMRXORY=0:0 S IMRXORX2=$E(IMRXORZ) Q:IMRXORX2'?1N S X=X_IMRXORX2,IMRXORZ=$E(IMRXORZ,2,99)
|
---|
35 | S (IMRXORX2,IMRXORX4)=+X,(IMRXORA,IMRXORB)=0,IMRXORN=4
|
---|
36 | G B17
|
---|