[613] | 1 | IMRXDRPT ;SF-IRMFO.SEA/JLI,HCIOFO/DDA - ROUTINE TO MERGE ENTRIES IN ICR FILE FOR PATIENT MERGE ;5/19/98 08:55
|
---|
| 2 | ;;2.1;IMMUNOLOGY CASE REGISTRY;**2**;Feb 09,1998
|
---|
| 3 | EN(ARRAY) ; Entry point for merging. Array is the NAME of array in which from and to entries are indicated.
|
---|
| 4 | ;
|
---|
| 5 | N FROMX,TO,X,FROMXA,TOA,ARRAY1,FRX,TOX,FROM
|
---|
| 6 | S ARRAY1=$NA(^TMP($J,"IMRMRG1"))
|
---|
| 7 | K @ARRAY1
|
---|
| 8 | S FROM=ARRAY1
|
---|
| 9 | F FROMX=0:0 S FROMX=$O(@ARRAY@(FROMX)) Q:FROMX'>0 D
|
---|
| 10 | . S TO=$O(@ARRAY@(FROMX,0))
|
---|
| 11 | . S FRX=$O(@ARRAY@(FROMX,TO,""))
|
---|
| 12 | . S TOX=$O(@ARRAY@(FROMX,TO,FRX,""))
|
---|
| 13 | . S X=FROMX D XOR^IMRXOR S FROMXA=+$O(^IMR(158,"B",X,""))
|
---|
| 14 | . S X=TO D XOR^IMRXOR S TOA=+$O(^IMR(158,"B",X,""))
|
---|
| 15 | . ; Quit if there are no equivalent IMR records.
|
---|
| 16 | . Q:(FROMXA'>0)&(TOA'>0)
|
---|
| 17 | . ; If there is only a 'to' IMR record, nil tracking dates and quit
|
---|
| 18 | . I FROMXA'>0 D NIL(TOA) Q
|
---|
| 19 | . ; If there is only a 'from' IMR record, create one to merge 'to'
|
---|
| 20 | . I TOA'>0 D
|
---|
| 21 | .. N IMRFDA,IMRIEN
|
---|
| 22 | .. S X=TO D XOR^IMRXOR
|
---|
| 23 | .. S IMRFDA(158,"+1,",.01)=X
|
---|
| 24 | .. D UPDATE^DIE("","IMRFDA","IMRIEN","")
|
---|
| 25 | .. S TOA=IMRIEN(1)
|
---|
| 26 | .. Q
|
---|
| 27 | . S @ARRAY1@(FROMXA,TOA,FRX,TOX)=""
|
---|
| 28 | . Q
|
---|
| 29 | D EN^XDRMERG(158,ARRAY1)
|
---|
| 30 | I '$D(XDRERR) D
|
---|
| 31 | . S FR158IEN=0
|
---|
| 32 | . F S FR158IEN=$O(@ARRAY1@(FR158IEN)) Q:FR158IEN'>0 D
|
---|
| 33 | ..;Reset merged-to entry tracking dates to nil, insuring accurate
|
---|
| 34 | ..; roll-up of data to the national data set.
|
---|
| 35 | .. S TO158IEN=$O(@ARRAY1@(FR158IEN,0))
|
---|
| 36 | .. D NIL(TO158IEN)
|
---|
| 37 | ..;Call logic to safely DELETE Immunology record. This also sends a
|
---|
| 38 | ..; delete request to the national data set.
|
---|
| 39 | .. S FROMDFN=+$O(@ARRAY1@(FR158IEN,TO158IEN,""))
|
---|
| 40 | .. D EN^IMRDEL(FR158IEN,FROMDFN)
|
---|
| 41 | .. Q
|
---|
| 42 | . K FR158IEN,FROMDFN,TO158IEN
|
---|
| 43 | . Q
|
---|
| 44 | K @ARRAY1
|
---|
| 45 | Q
|
---|
| 46 | NIL(DA) S DIE="^IMR(158,"
|
---|
| 47 | S DR="101.01///@;101.02///@;101.03///@;101.04///@;101.05///@;101.06///@;101.07///@;101.08///@;101.09///@;101.1///@;101.11///@;101.12///@;101.13///@;101.14///@;101.15///@;101.16///@;101.17///@"
|
---|
| 48 | L +^IMR(158,DA) D ^DIE L -^IMR(158,DA)
|
---|
| 49 | K DA,DIE,DR,DTOUT
|
---|