YSD40062 ;DALISC/LJA - Restore Medical Records ; [ 07/13/94 2:06 PM ] ;;5.01;MENTAL HEALTH;;Dec 30, 1994 ;; ; MR ; ; YSD40, YSD4CIEN -- req ; ; Counter variable S (YSD4CT,YSD4GCT)=0 ; Quit if not Converted... QUIT:$P(YSD40,U,2)'="C" ;-> ; ; If any entries are restored, kill "MR" nodes... K ^YSD(627.99,"AS","MR CONVERSION COMPLETED") K ^YSD(627.99,"AS","MR CONVERSION STARTED") K ^YSD(627.99,"AS","MR LAST STARTED") K ^YSD(627.99,"AS","MR NUMBER CONVERTED") ; ; Set needed vars for xrefs, etc S YSD4REF=$P(YSD40,U) ;Reference to Medical Record S YSD4IEN=+YSD4REF ;Medical Record's IEN ; ; Loop thru nodes... S YSD4NODE=0,YSD4CT=0 F S YSD4NODE=$O(^YSD(627.99,+YSD4CIEN,YSD4NODE)) QUIT:'$$OKNODE(YSD4NODE) D . S YSD4CT=YSD4CT+1 W:'(YSD4CT#50) "." . D @YSD4NODE K ^YSD(627.99,+YSD4CIEN) K ^YSD(627.99,"B",YSD4REF,+YSD4CIEN) 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 ; ; Up counter and dot S ^TMP($J,"MR")=$G(^TMP($J,"MR"))+1 S YSD4GCT=YSD4GCT+1 W:'(YSD4GCT#50) "." ; QUIT ; DX ; S YSD4DXNO=0 F S YSD4DXNO=$O(^YSD(627.99,+YSD4CIEN,"DX",YSD4DXNO)) QUIT:YSD4DXNO'>0 D . S YSD4ODX=$G(^YSD(627.99,+YSD4CIEN,"DX",+YSD4DXNO,0)) . QUIT:YSD4ODX']"" ;-> . S YSD4NDX=$P($G(^MR(+YSD4IEN,"DX",+YSD4DXNO,0)),U) . QUIT:YSD4NDX']"" ;-> . K ^MR(+YSD4IEN,"DX","B",+YSD4NDX,+YSD4DXNO) . S ^MR(+YSD4IEN,"DX","B",+YSD4ODX,+YSD4DXNO)="" . S $P(^MR(+YSD4IEN,"DX",+YSD4DXNO,0),U)=YSD4ODX . K ^YSD(627.99,+YSD4CIEN,"DX",+YSD4DXNO) QUIT ; DX1 ; S YSD4ODX1=$G(^YSD(627.99,+YSD4CIEN,"DX1")) QUIT:$P(YSD4ODX1,U,2)']""&($P(YSD4ODX1,U,4)']"") ;-> F YSD4P=2,4 D . S YSD4ODX=$P(YSD4ODX1,U,+YSD4P) . QUIT:YSD4ODX']"" ;-> . S $P(^MR(+YSD4IEN,"DX1"),U,+YSD4P)=YSD4ODX K ^YSD(627.99,+YSD4CIEN,"DX1") QUIT ; PDX ; S YSD4PDX=0 F S YSD4PDX=$O(^YSD(627.99,+YSD4CIEN,"PDX",YSD4PDX)) QUIT:YSD4PDX'>0 D . S YSD4ODX=$P($G(^YSD(627.99,+YSD4CIEN,"PDX",+YSD4PDX,0)),U) . QUIT:YSD4ODX']"" ;-> . S $P(^MR(+YSD4IEN,"PDX",+YSD4PDX,0),U)=YSD4ODX . K ^YSD(627.99,+YSD4CIEN,"PDX",+YSD4PDX) QUIT ; XDX ; S YSD4PDX=0 F S YSD4PDX=$O(^YSD(627.99,+YSD4CIEN,"XDX",YSD4PDX)) QUIT:YSD4PDX'>0 D . S YSD4ODX=$P($G(^YSD(627.99,+YSD4CIEN,"XDX",+YSD4PDX,0)),U) . QUIT:YSD4ODX']"" ;-> . S $P(^MR(+YSD4IEN,"XDX",+YSD4PDX,0),U)=YSD4ODX . K ^YSD(627.99,+YSD4CIEN,"XDX",+YSD4PDX) QUIT ; OKNODE(NODE) ; QUIT:$G(NODE)']"" 0 QUIT NODE["DX"!(NODE["DX1")!(NODE["PDX")!(NODE["XDX") ; EOR ;YSD40061 - Restore Medical Records ; 4/8/94 13:20