Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: RGDRM03

RGDRM03.m

Go to the documentation of this file.
  1. RGDRM03 ;BAY/ALS-MPI/PD AWARE DUPLICATE RECORD MERGE ;03/17/00
  1. ;;1.0;CLINICAL INFO RESOURCE NETWORK;**6,12**;30 Apr 99
  1. ;
  1. ;Reference to ^DPT( supported by IA #2070
  1. ;Reference to RMOVPAIR^XDRDVAL1 supported by IA #3168
  1. ;
  1. EN(ARRAY) ; Entry point
  1. F DFNFRM=0:0 S DFNFRM=$O(@ARRAY@(DFNFRM)) Q:DFNFRM'>0 D
  1. . S DFNTO=$O(@ARRAY@(DFNFRM,""))
  1. . S IENFRM=$O(@ARRAY@(DFNFRM,DFNTO,""))
  1. . S IENTO=$O(@ARRAY@(DFNFRM,DFNTO,IENFRM,""))
  1. . S RETURN=$$CKICNS^RGDRM01(DFNFRM,DFNTO)
  1. . I $P(RETURN,"^",1)=1 D
  1. .. D MRGTF^RGDRM02(DFNFRM,DFNTO)
  1. .. D MRGSUB^RGDRM02(DFNFRM,DFNTO)
  1. . I $P(RETURN,"^",1)<1 D
  1. .. D START^RGHLLOG($G(HLMTIEN)),EXC^RGHLLOG(233,$P(RETURN,"^",2),DFNTO),STOP^RGHLLOG(0)
  1. ..; remove pair from merge
  1. .. S IEN=""
  1. .. S IEN=+$G(@ARRAY@(DFNFRM,DFNTO,IENFRM,IENTO))
  1. .. D RMOVPAIR^XDRDVAL1(DFNFRM,DFNTO,IEN,ARRAY)
  1. ; Check to see if there are any pairs left to merge
  1. K IEN,IENTO,IENFRM
  1. Q
  1. MRGCMOR ; If the 'FROM' record has a CMOR and the 'TO' record does not, set the
  1. ; field in the 'TO' record and delete the field in the 'FROM' record.
  1. ; The CMOR score will be recalculated for the TO record when
  1. ; merge completes.
  1. L +^DPT(DFNTO):10
  1. S DIE="^DPT(",DA=DFNTO,DR="991.03///^S X=CMORFRM"
  1. D ^DIE K DIE,DA,DR
  1. L -^DPT(DFNTO)
  1. DEL ; Delete field in 'FROM' record
  1. L +^DPT(DFNFRM):10
  1. S DIE="^DPT(",DA=DFNFRM,DR="991.03///@;991.06///@;991.07///@"
  1. D ^DIE K DIE,DA,DR
  1. L -^DPT(DFNFRM)
  1. Q
  1. EXIT ;
  1. Q RETURN
  1. GETSCR(DFN) ; Get CMOR score and calculation date given IEN (DFN) of patient file (#2)
  1. Q:'DFN
  1. N SCORE,SCOREDT,RETURN,SCR
  1. I '$D(^DPT(DFN,"MPI")) S RETURN="-1^No MPI Node" G EXIT2
  1. S DIC="^DPT(",DR="991.06;991.07",DA=DFN,DIQ="SCR",DIQ(0)="I"
  1. D EN^DIQ1 K DIC,DR,DA,DIQ
  1. S SCORE=$G(SCR(2,DFN,991.06,"I"))
  1. S SCOREDT=$G(SCR(2,DFN,991.07,"I"))
  1. S RETURN=SCORE_"^"_SCOREDT
  1. EXIT2 ;
  1. Q RETURN