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