GLOBAL MAP DATA DICTIONARY #15 -- DUPLICATE RECORD FILE 3/24/25 PAGE 1 STORED IN ^VA(15, *** NO DATA STORED YET *** SITE: WWW.BMIRWIN.COM UCI: VISTA,VISTA (VERSION 7.3) ----------------------------------------------------------------------------------------------------------------------------------- This file contains information about duplicate records in any file defined in the two variable pointer fields; RECORD1 and RECORD2 (.01 and .02). The status of an entry in this file may be 'potential duplicate, unverified', 'verified, not a duplicate', or 'verified duplicate'. The envisioned sequence of events is software would identify potential duplicates from a file and add an entry in this file containing the two potential duplicate records and set the status field to 'potential duplicate, unverified'. A user would then make the determination of whether the two entries were truely duplicates and change the status field appropriately. If the user changed the status to 'verified duplicate' he/she would then be asked whether to merge RECORD1 to RECORD2 or RECORD2 to RECORD1. The records would then be merged accordingly. This user interaction is controlled by the merge software and the dictionary supports a merge methodology that will notify the appropriate packages affected by the merging of the two entries and wait for their concurrence prior to actually merging the two entries. If this approach is not desired the software can set the appropriate fields and immediatley do the merge. This methodology requires the two fields defined below. The MERGE STATUS field is a SET where 0=not ready, 1=ready, and 2=merged. This field would be set to 0=not ready and a bulletin would be sent to the appropriate package users. The MERGE PACKAGES field is a multiple which contains a list of packages that are affected by the merging of entries in the subject file. The STATUS field of this multiple will be set to 0=not ready if the package has the 'from' entry and does an interactive merge. It will be set to 1=ready if the package has the 'from' entry but does an automatic merge. It will be set to 2=no from entry if the package does not have the 'from' entry, regardless of whether they do an interactive or automatic merge. If the package has a merge routine in the package file the merge is automatic. If not, the merge is interactive. The ERROR MESSAGE field of this multiple will contain any errors encountered during the execution of that packages merge routine. Once all entries in the MERGE PACKAGES multiple have a STATUS'=0 the MERGE STATUS field is set to 1=ready via a TRIGGER. Once the MERGE STATUS is set to 1=ready the actual merge will occur. When it is complete the MERGE STATUS will be set to 2=merged. Once set to 2 most fields cannot be modified. The following fields are set by TRIGGERs and are never seen by the user: DATE FOUND, DATE VERIFIED, DATE RESOLVED, WHO CREATED, WHO VERIFIED, and WHO CHANGED. Also, the MERGE DIRECTION and MERGE STATUS fields will be deleted by a TRIGGER if the STATUS field is modified from 'verified duplicate' to any other status. The fields LOOKUP1 and LOOKUP2 provide navigational capability from this file to either the RECORD1 or RECORD2 entries in the file specified in the variable pointer fields. The field LOOKUP3 provides navigational capability to any file that points to this file and has a DINUM relationship. A lookup on the "B" xref will get any file entry that is part of a duplicate record pair because the "B" xref is set by a REGULAR xref on the .01 field and by a MNEMONIC xref on the .02 field. The "AFR" xref is used by the INPUT TRANSFORMS on the .01 and .02 field to prevent entering a file entry that has already been merged away. All xrefs that have subscripts consisting of 'RECORD^RECORD' pairs will be 'low DFN^high DFN'. The "ALK" xref is short lived and contains entries that are unresolved potential duplicates or verified duplicates that have not yet been merged. Its form, using file 2 as an example, is ^VA(15,"ALK","DPT(",fe#1,1,fe#2,DA) or ^VA(15,"ALK","DPT(",fe#1,2,fe#2,DA) where the 5th subscript has the following meaning: 1=potential duplicate, 2=verified duplicate. When the 5th subscript is a 1 there will be two "ALK" entries with the two fe#s reversed. When the 5th subscript is a 2 there will be only 1 "ALK" entry and fe#s will be in the order 'from' 'to'. Once merged the "ALK" xref for that entry will be killed. The "AMRG" xref is also short lived and contains one "AMRG" entry for each entry in this file that has a MERGE STATUS of 0=not ready or 1=ready. Once merged the "AMRG" xref for that entry will be killed. The form of the "AMRG xref, using file 2 as an example, is ^VA(15,"AMRG","DPT(",0,DA) or ^VA(15,"AMRG","DPT(",1,DA) where the value of the 4th subscript has the following meaning; 0=not ready, 1=ready. The "AVCHG" xref is set by the WHO CHANGED field which is itself only set when the STATUS field is changed from "V" to any other value. If this xref exists action needs to be taken because other packages have been notified to merge the two entries. All TRIGGERs fire forward except the TRIGGER on the STATUS field of the MERGE PACKAGES multiple which fires backward to set the MERGE STATUS field. However, that TRIGGER has no effect on the kill side. TRIGGER direction can be relevent when deleting entries using ^DIK. The .01 and .02 fields are 'uneditable' so entries can only be deleted from this file using ^DIK. Most TRIGGERs will not fire during a RE-INDEX of this file. Also, many are conditional upon external SET values. Modify this dictionary with extreme caution. Several TRIGGERs have been modified using ^%GEDIT to add MUMPS code to the conditional logic to prevent firing during a RE-INDEX. This was done only for TRIGGERs that already had human readable conditional logic. ***** W A R N I N G ***** When you add a file to a variable pointer field FileMan deletes the input transform so save it off before the change and restore it after the change. CROSS REFERENCED BY: STATUS(ACMORS), MERGE STATUS(ADJ), MERGE DIRECTION(AFR), MERGE STATUS(AFR), STATUS(ALK), MERGE DIRECTION(ALK2), MERGE STATUS(ALK3), MFI CONTROLLED(AMFIC), MFI PATIENT(AMFIP), MFI RESOLVED(AMFIP2), MFI RESOLVED(AMFIR), MERGE STATUS(AMRG), STATUS(ANOT), STATUS(AODUP), STATUS(APOT), STATUS(ARDUP), STATUS(ARDUP1), MERGE DIRECTION(ATO), MERGE STATUS(ATO), WHO CHANGED(AVCHG), STATUS(AVDUP), STATUS(AXDUP), STATUS(AXDUP1), RECORD1(B), RECORD2(B) ^VA(15,D0,0)= (#.01) RECORD1 [1V] ^ (#.02) RECORD2 [2V] ^ (#.03) STATUS [3S] ^ (#.04) MERGE DIRECTION [4S] ^ (#.05) MERGE STATUS ==>[5S] ^ (#.06) DATE FOUND [6D] ^ (#.07) DATE VERIFIED [7D] ^ (#.08) DATE RESOLVED [8D] ^ (#.09) WHO CREATED [9P:200] ==>^ (#.1) VERIF STARTED DATE [10D] ^ (#.11) WHO VERIFIED [11P:200] ^ (#.12) WHO CHANGED [12P:200] ^ (#.13) APPROVED ==>FOR BACK UP [13S] ^ (#.14) BACKUP INDICATED BY [14F] ^ (#.15) DC TOTAL POSSIBLE SCORE [15N] ^ (#.16) DC VERIFIED ==>DUPE THRESHOLD % [16N] ^ (#.17) DC POTENTIAL DUPE THRESHOLD % [17N] ^ (#.18) DC DUPE MATCH SCORE [18N] ^ (#.19) DC ==>DUPE MATCH PERCENTILE [19N] ^ (#.2) MERGE PROCESS [20P:15.2] ^ ^VA(15,D0,1)= (#1) REMARKS [1F] ^ ^VA(15,D0,2,0)=^15.02^^ (#2) IDENTIFYING SERVICE ^VA(15,D0,2,D1,0)= (#.01) IDENTIFYING SERVICE [1F] ^ (#.02) SERVICE DETERMINATION [2S] ^ (#.03) WHO DETERMINED [3P:200] ^ (#.04) ==>WHEN DETERMINED [4D] ^ (#.05) DIRECTION OF MERGE [5S] ^ ^VA(15,D0,3,0)=^15.03A^^ (#3) OVERWRITE IN FILE ^VA(15,D0,3,D1,0)= (#.01) OVERWRITE IN FILE [1N] ^ (#.02) MERGE DIRECTION [2S] ^ ^VA(15,D0,3,D1,1,0)=^15.031A^^ (#1) FIELD TO OVERWRITE ^VA(15,D0,3,D1,1,D2,0)= (#.01) FIELD TO OVERWRITE [1N] ^ ^VA(15,D0,11,0)=^15.01101P^^ (#1101) MERGE PACKAGES ^VA(15,D0,11,D1,0)= (#.01) PACKAGE [1P:9.4] ^ (#.02) STATUS [2S] ^ (#.03) ERROR MESSAGE [3F] ^ ^VA(15,D0,21,0)=^15.02101A^^ (#2101) DUPLICATE TESTS/SCORES ^VA(15,D0,21,D1,0)= (#.01) DUPLICATE TEST [1F] ^ (#.02) DUPLICATE SCORE [2N] ^ ^VA(15,D0,9999999)= (#999999901) MFI CONTROLLED [1S] ^ (#999999902) MFI RESOLVED [2S] ^ (#999999903) MFI PATIENT [3P:2] ^ ==>(#999999904) MFI FROM SITE [4F] ^ ^VA(15,D0,CP,0)=^15.013^^ (#1300) CHECK POINTS ^VA(15,D0,CP,D1,0)= (#.01) CHECK POINTS [1F] ^ ^VA(15,D0,CP,D1,1)= (#1) PARAMETERS [E1,245F] ^ INPUT TEMPLATE(S): PRINT TEMPLATE(S): ^DIPT(1188)= XDR BRIEF LIST ^DIPT(57)= XDR MERGED LIST SORT TEMPLATE(S): ^DIBT(666)= XDR MERGED LIST ^DIBT(34)= XDR NOT READY TO MERGE LIST ^DIBT(33)= XDR POTENTIAL DUPLICATE LIST ^DIBT(35)= XDR READY TO MERGE LIST FORM(S)/BLOCK(S):