[613] | 1 | YSD40062 ;DALISC/LJA - Restore Medical Records ; [ 07/13/94 2:06 PM ]
|
---|
| 2 | ;;5.01;MENTAL HEALTH;;Dec 30, 1994
|
---|
| 3 | ;;
|
---|
| 4 | ;
|
---|
| 5 | MR ;
|
---|
| 6 | ; YSD40, YSD4CIEN -- req
|
---|
| 7 | ;
|
---|
| 8 | ; Counter variable
|
---|
| 9 | S (YSD4CT,YSD4GCT)=0
|
---|
| 10 | ; Quit if not Converted...
|
---|
| 11 | QUIT:$P(YSD40,U,2)'="C" ;->
|
---|
| 12 | ;
|
---|
| 13 | ; If any entries are restored, kill "MR" nodes...
|
---|
| 14 | K ^YSD(627.99,"AS","MR CONVERSION COMPLETED")
|
---|
| 15 | K ^YSD(627.99,"AS","MR CONVERSION STARTED")
|
---|
| 16 | K ^YSD(627.99,"AS","MR LAST STARTED")
|
---|
| 17 | K ^YSD(627.99,"AS","MR NUMBER CONVERTED")
|
---|
| 18 | ;
|
---|
| 19 | ; Set needed vars for xrefs, etc
|
---|
| 20 | S YSD4REF=$P(YSD40,U) ;Reference to Medical Record
|
---|
| 21 | S YSD4IEN=+YSD4REF ;Medical Record's IEN
|
---|
| 22 | ;
|
---|
| 23 | ; Loop thru nodes...
|
---|
| 24 | S YSD4NODE=0,YSD4CT=0
|
---|
| 25 | F S YSD4NODE=$O(^YSD(627.99,+YSD4CIEN,YSD4NODE)) QUIT:'$$OKNODE(YSD4NODE) D
|
---|
| 26 | . S YSD4CT=YSD4CT+1 W:'(YSD4CT#50) "."
|
---|
| 27 | . D @YSD4NODE
|
---|
| 28 | K ^YSD(627.99,+YSD4CIEN)
|
---|
| 29 | K ^YSD(627.99,"B",YSD4REF,+YSD4CIEN)
|
---|
| 30 | S X=$P(^YSD(627.99,0),U,4)-1,X=$S(X>0:X,1:0),$P(^YSD(627.99,0),U,4)=X
|
---|
| 31 | ;
|
---|
| 32 | ; Up counter and dot
|
---|
| 33 | S ^TMP($J,"MR")=$G(^TMP($J,"MR"))+1
|
---|
| 34 | S YSD4GCT=YSD4GCT+1 W:'(YSD4GCT#50) "."
|
---|
| 35 | ;
|
---|
| 36 | QUIT
|
---|
| 37 | ;
|
---|
| 38 | DX ;
|
---|
| 39 | S YSD4DXNO=0
|
---|
| 40 | F S YSD4DXNO=$O(^YSD(627.99,+YSD4CIEN,"DX",YSD4DXNO)) QUIT:YSD4DXNO'>0 D
|
---|
| 41 | . S YSD4ODX=$G(^YSD(627.99,+YSD4CIEN,"DX",+YSD4DXNO,0))
|
---|
| 42 | . QUIT:YSD4ODX']"" ;->
|
---|
| 43 | . S YSD4NDX=$P($G(^MR(+YSD4IEN,"DX",+YSD4DXNO,0)),U)
|
---|
| 44 | . QUIT:YSD4NDX']"" ;->
|
---|
| 45 | . K ^MR(+YSD4IEN,"DX","B",+YSD4NDX,+YSD4DXNO)
|
---|
| 46 | . S ^MR(+YSD4IEN,"DX","B",+YSD4ODX,+YSD4DXNO)=""
|
---|
| 47 | . S $P(^MR(+YSD4IEN,"DX",+YSD4DXNO,0),U)=YSD4ODX
|
---|
| 48 | . K ^YSD(627.99,+YSD4CIEN,"DX",+YSD4DXNO)
|
---|
| 49 | QUIT
|
---|
| 50 | ;
|
---|
| 51 | DX1 ;
|
---|
| 52 | S YSD4ODX1=$G(^YSD(627.99,+YSD4CIEN,"DX1"))
|
---|
| 53 | QUIT:$P(YSD4ODX1,U,2)']""&($P(YSD4ODX1,U,4)']"") ;->
|
---|
| 54 | F YSD4P=2,4 D
|
---|
| 55 | . S YSD4ODX=$P(YSD4ODX1,U,+YSD4P)
|
---|
| 56 | . QUIT:YSD4ODX']"" ;->
|
---|
| 57 | . S $P(^MR(+YSD4IEN,"DX1"),U,+YSD4P)=YSD4ODX
|
---|
| 58 | K ^YSD(627.99,+YSD4CIEN,"DX1")
|
---|
| 59 | QUIT
|
---|
| 60 | ;
|
---|
| 61 | PDX ;
|
---|
| 62 | S YSD4PDX=0
|
---|
| 63 | F S YSD4PDX=$O(^YSD(627.99,+YSD4CIEN,"PDX",YSD4PDX)) QUIT:YSD4PDX'>0 D
|
---|
| 64 | . S YSD4ODX=$P($G(^YSD(627.99,+YSD4CIEN,"PDX",+YSD4PDX,0)),U)
|
---|
| 65 | . QUIT:YSD4ODX']"" ;->
|
---|
| 66 | . S $P(^MR(+YSD4IEN,"PDX",+YSD4PDX,0),U)=YSD4ODX
|
---|
| 67 | . K ^YSD(627.99,+YSD4CIEN,"PDX",+YSD4PDX)
|
---|
| 68 | QUIT
|
---|
| 69 | ;
|
---|
| 70 | XDX ;
|
---|
| 71 | S YSD4PDX=0
|
---|
| 72 | F S YSD4PDX=$O(^YSD(627.99,+YSD4CIEN,"XDX",YSD4PDX)) QUIT:YSD4PDX'>0 D
|
---|
| 73 | . S YSD4ODX=$P($G(^YSD(627.99,+YSD4CIEN,"XDX",+YSD4PDX,0)),U)
|
---|
| 74 | . QUIT:YSD4ODX']"" ;->
|
---|
| 75 | . S $P(^MR(+YSD4IEN,"XDX",+YSD4PDX,0),U)=YSD4ODX
|
---|
| 76 | . K ^YSD(627.99,+YSD4CIEN,"XDX",+YSD4PDX)
|
---|
| 77 | QUIT
|
---|
| 78 | ;
|
---|
| 79 | OKNODE(NODE) ;
|
---|
| 80 | QUIT:$G(NODE)']"" 0
|
---|
| 81 | QUIT NODE["DX"!(NODE["DX1")!(NODE["PDX")!(NODE["XDX")
|
---|
| 82 | ;
|
---|
| 83 | EOR ;YSD40061 - Restore Medical Records ; 4/8/94 13:20
|
---|