| 1 | RGDRM03 ;BAY/ALS-MPI/PD AWARE DUPLICATE RECORD MERGE ;03/17/00 | 
|---|
| 2 | ;;1.0;CLINICAL INFO RESOURCE NETWORK;**6,12**;30 Apr 99 | 
|---|
| 3 | ; | 
|---|
| 4 | ;Reference to ^DPT( supported by IA #2070 | 
|---|
| 5 | ;Reference to RMOVPAIR^XDRDVAL1 supported by IA #3168 | 
|---|
| 6 | ; | 
|---|
| 7 | EN(ARRAY) ; Entry point | 
|---|
| 8 | F DFNFRM=0:0 S DFNFRM=$O(@ARRAY@(DFNFRM)) Q:DFNFRM'>0  D | 
|---|
| 9 | . S DFNTO=$O(@ARRAY@(DFNFRM,"")) | 
|---|
| 10 | . S IENFRM=$O(@ARRAY@(DFNFRM,DFNTO,"")) | 
|---|
| 11 | . S IENTO=$O(@ARRAY@(DFNFRM,DFNTO,IENFRM,"")) | 
|---|
| 12 | . S RETURN=$$CKICNS^RGDRM01(DFNFRM,DFNTO) | 
|---|
| 13 | . I $P(RETURN,"^",1)=1 D | 
|---|
| 14 | .. D MRGTF^RGDRM02(DFNFRM,DFNTO) | 
|---|
| 15 | .. D MRGSUB^RGDRM02(DFNFRM,DFNTO) | 
|---|
| 16 | . I $P(RETURN,"^",1)<1 D | 
|---|
| 17 | .. D START^RGHLLOG($G(HLMTIEN)),EXC^RGHLLOG(233,$P(RETURN,"^",2),DFNTO),STOP^RGHLLOG(0) | 
|---|
| 18 | ..; remove pair from merge | 
|---|
| 19 | .. S IEN="" | 
|---|
| 20 | .. S IEN=+$G(@ARRAY@(DFNFRM,DFNTO,IENFRM,IENTO)) | 
|---|
| 21 | .. D RMOVPAIR^XDRDVAL1(DFNFRM,DFNTO,IEN,ARRAY) | 
|---|
| 22 | ; Check to see if there are any pairs left to merge | 
|---|
| 23 | K IEN,IENTO,IENFRM | 
|---|
| 24 | Q | 
|---|
| 25 | MRGCMOR ; If the 'FROM' record has a CMOR and the 'TO' record does not, set the | 
|---|
| 26 | ; field in the 'TO' record and delete the field in the 'FROM' record. | 
|---|
| 27 | ; The CMOR score will be recalculated for the TO record when | 
|---|
| 28 | ; merge completes. | 
|---|
| 29 | L +^DPT(DFNTO):10 | 
|---|
| 30 | S DIE="^DPT(",DA=DFNTO,DR="991.03///^S X=CMORFRM" | 
|---|
| 31 | D ^DIE K DIE,DA,DR | 
|---|
| 32 | L -^DPT(DFNTO) | 
|---|
| 33 | DEL ; Delete field in 'FROM' record | 
|---|
| 34 | L +^DPT(DFNFRM):10 | 
|---|
| 35 | S DIE="^DPT(",DA=DFNFRM,DR="991.03///@;991.06///@;991.07///@" | 
|---|
| 36 | D ^DIE K DIE,DA,DR | 
|---|
| 37 | L -^DPT(DFNFRM) | 
|---|
| 38 | Q | 
|---|
| 39 | EXIT ; | 
|---|
| 40 | Q RETURN | 
|---|
| 41 | GETSCR(DFN) ; Get CMOR score and calculation date given IEN (DFN) of patient file (#2) | 
|---|
| 42 | Q:'DFN | 
|---|
| 43 | N SCORE,SCOREDT,RETURN,SCR | 
|---|
| 44 | I '$D(^DPT(DFN,"MPI")) S RETURN="-1^No MPI Node" G EXIT2 | 
|---|
| 45 | S DIC="^DPT(",DR="991.06;991.07",DA=DFN,DIQ="SCR",DIQ(0)="I" | 
|---|
| 46 | D EN^DIQ1 K DIC,DR,DA,DIQ | 
|---|
| 47 | S SCORE=$G(SCR(2,DFN,991.06,"I")) | 
|---|
| 48 | S SCOREDT=$G(SCR(2,DFN,991.07,"I")) | 
|---|
| 49 | S RETURN=SCORE_"^"_SCOREDT | 
|---|
| 50 | EXIT2 ; | 
|---|
| 51 | Q RETURN | 
|---|