| 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
 | 
|---|