RGMTUT02 ;BIR/CML-MPI/PD Compile and Correct Data Validation Data for Local Sites (CON'T) ;07/30/02
 ;;1.0;CLINICAL INFO RESOURCE NETWORK;**20,37,41**;30 Apr 99
 ;
 ;Reference to ^DPT("AICN" & ^DPT("AICNL" supported by IA #2070
 ;Reference to $$SETLOC MPIF001 supported by IA #2705
 ;Reference to EDIT^VAFCPTED supported by IA #2784
 ;
 Q
 ;
REIND ;Correct any existing xref problems:
 ;patch RG*1.0*41 only removed code - specifically the check to see if the REIND has already run that day
 ; - missing SSN xref (only if they have a local or national ICN)
 ; - missing AICN xref
 ; - missing AICNL xref and field Locally assigned ICN
 ;Also get counts of national ICNs, Local ICNs and NO ICNs
 ;
 ;NOSSN = number of patients missing an SSN xref (only if they have a local or national ICN)
 ;NOAICN = number of patients missing an AICN xref
 ;NOAICNL = number of patients missing an AICNL xref
 ;NICNCNT = number of patients with a national ICN
 ;LICNCNT = number of patients with a local ICN
 ;NOICNCNT = number of patients no ICN
 ;
 K ^XTMP("RGMT","UT01","REIND")
 S (NOSSN,NOAICN,NOAICNL,NICNCNT,LICNCNT,NOICNCNT,DFNCNT)=0
 F TYPE="MISSING SSN XREF","MISSING AICN XREF","MISSING AICNL XREF","NATIONAL ICN COUNT","LOCAL ICN COUNT","NO ICN COUNT" D
 .S ^XTMP("RGMT","UT01","REIND",TYPE)=0
 ;
 S SITE=$P($$SITE^VASITE(),"^",3)
 ;
 I '$D(RGHLMQ) D
 .W !!,"Checking for:"
 .W !,"Missing ""SSN"" xrefs in ^DPT"
 .W !,"Missing ""AICN"" xrefs in ^DPT"
 .W !,"Missing ""AICNL"" xrefs in ^DPT"
 .W !,"Counts on total National ICNs"
 .W !,"Counts on total Local ICNs"
 .W !,"Counts on total patients without ICNs"
 ;
 S DFN=0 F  S DFN=$O(^DPT(DFN)) Q:'DFN  S DFNCNT=DFNCNT+1 S MNODE=$G(^DPT(DFN,"MPI")) D
 .I '$D(RGHLMQ),'(DFNCNT#10000) W !,DFN
 .I MNODE="" S NOICNCNT=NOICNCNT+1 Q
 .S ICN=$P(MNODE,"^") I ICN="" S NOICNCNT=NOICNCNT+1 Q
 .S SSN=$P($G(^DPT(DFN,0)),"^",9)
 .I $G(SSN),'$D(^DPT("SSN",SSN,DFN)) S NOSSN=NOSSN+1 D
 ..; if SSN xref exists for a different patient, send exception and quit
 ..; otherwise, edit the field to set the xref
 ..I $D(^DPT("SSN",SSN)) D  Q
 ...D EXC^RGHLLOG(210,"SSN xref does not exist for patient DFN #"_DFN_" for SSN "_SSN_". This SSN appears to exist for a different patient.",DFN)
 ..I $L(SSN)>8 K ARR S ARR(2,.09)=SSN D EDIT^VAFCPTED(DFN,"ARR(2)",".09")
 .I '$D(^DPT("AICN",ICN,DFN)) S NOAICN=NOAICN+1,^DPT("AICN",ICN,DFN)=""
 .I $E(ICN,1,3)'=SITE S NICNCNT=NICNCNT+1 Q
 .I $E(ICN,1,3)=SITE D
 ..S LICNCNT=LICNCNT+1
 ..I '$D(^DPT("AICNL",1,DFN)) S LOCAL=$$SETLOC^MPIF001(DFN,1),^DPT("AICNL",1,DFN)="",NOAICNL=NOAICNL+1
 ;
 ;
 S ^XTMP("RGMT","UT01","REIND","MISSING SSN XREF")=NOSSN
 S ^XTMP("RGMT","UT01","REIND","MISSING AICN XREF")=NOAICN
 S ^XTMP("RGMT","UT01","REIND","MISSING AICNL XREF")=NOAICNL
 S ^XTMP("RGMT","UT01","REIND","NATIONAL ICN COUNT")=NICNCNT
 S ^XTMP("RGMT","UT01","REIND","LOCAL ICN COUNT")=LICNCNT
 S ^XTMP("RGMT","UT01","REIND","NO ICN COUNT")=NOICNCNT
 ;
 I '$D(RGHLMQ) D
 .W !!,"Results:"
 .W !?3,"Missing SSN xrefs created  :",?41,$J(NOSSN,7)
 .W !?3,"Missing AICN xrefs created :",?41,$J(NOAICN,7)
 .W !?3,"Missing AICNL xrefs created:",?41,$J(NOAICNL,7)
 .W !?3,"Total DFNs processed   : ",$J(DFNCNT,8)
 .W !?6,"Total National ICNs : ",$J(NICNCNT,8)
 .W !?6,"Total Local ICNs    : ",$J(LICNCNT,8)
 .W !?6,"Total without ICNs  : ",$J(NOICNCNT,8)
 .W !!,"(List global ^XTMP(""RGMT"",""UT01"",""REIND"" for data.)"
 ;
 K ARR,CURDT,DFN,DFNCNT,ICN,LICNCNT,LOCAL,MNODE,NICNCNT,NOAICN,NOAICNL,NOICNCNT,NOSSN,SITE,SSN,TYPE
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRGMTUT02   3559     printed  Sep 23, 2025@19:18:29                                                                                                                                                                                                    Page 2
RGMTUT02  ;BIR/CML-MPI/PD Compile and Correct Data Validation Data for Local Sites (CON'T) ;07/30/02
 +1       ;;1.0;CLINICAL INFO RESOURCE NETWORK;**20,37,41**;30 Apr 99
 +2       ;
 +3       ;Reference to ^DPT("AICN" & ^DPT("AICNL" supported by IA #2070
 +4       ;Reference to $$SETLOC MPIF001 supported by IA #2705
 +5       ;Reference to EDIT^VAFCPTED supported by IA #2784
 +6       ;
 +7        QUIT 
 +8       ;
REIND     ;Correct any existing xref problems:
 +1       ;patch RG*1.0*41 only removed code - specifically the check to see if the REIND has already run that day
 +2       ; - missing SSN xref (only if they have a local or national ICN)
 +3       ; - missing AICN xref
 +4       ; - missing AICNL xref and field Locally assigned ICN
 +5       ;Also get counts of national ICNs, Local ICNs and NO ICNs
 +6       ;
 +7       ;NOSSN = number of patients missing an SSN xref (only if they have a local or national ICN)
 +8       ;NOAICN = number of patients missing an AICN xref
 +9       ;NOAICNL = number of patients missing an AICNL xref
 +10      ;NICNCNT = number of patients with a national ICN
 +11      ;LICNCNT = number of patients with a local ICN
 +12      ;NOICNCNT = number of patients no ICN
 +13      ;
 +14       KILL ^XTMP("RGMT","UT01","REIND")
 +15       SET (NOSSN,NOAICN,NOAICNL,NICNCNT,LICNCNT,NOICNCNT,DFNCNT)=0
 +16       FOR TYPE="MISSING SSN XREF","MISSING AICN XREF","MISSING AICNL XREF","NATIONAL ICN COUNT","LOCAL ICN COUNT","NO ICN COUNT"
               Begin DoDot:1
 +17               SET ^XTMP("RGMT","UT01","REIND",TYPE)=0
               End DoDot:1
 +18      ;
 +19       SET SITE=$PIECE($$SITE^VASITE(),"^",3)
 +20      ;
 +21       IF '$DATA(RGHLMQ)
               Begin DoDot:1
 +22               WRITE !!,"Checking for:"
 +23               WRITE !,"Missing ""SSN"" xrefs in ^DPT"
 +24               WRITE !,"Missing ""AICN"" xrefs in ^DPT"
 +25               WRITE !,"Missing ""AICNL"" xrefs in ^DPT"
 +26               WRITE !,"Counts on total National ICNs"
 +27               WRITE !,"Counts on total Local ICNs"
 +28               WRITE !,"Counts on total patients without ICNs"
               End DoDot:1
 +29      ;
 +30       SET DFN=0
           FOR 
               SET DFN=$ORDER(^DPT(DFN))
               if 'DFN
                   QUIT 
               SET DFNCNT=DFNCNT+1
               SET MNODE=$GET(^DPT(DFN,"MPI"))
               Begin DoDot:1
 +31               IF '$DATA(RGHLMQ)
                       IF '(DFNCNT#10000)
                           WRITE !,DFN
 +32               IF MNODE=""
                       SET NOICNCNT=NOICNCNT+1
                       QUIT 
 +33               SET ICN=$PIECE(MNODE,"^")
                   IF ICN=""
                       SET NOICNCNT=NOICNCNT+1
                       QUIT 
 +34               SET SSN=$PIECE($GET(^DPT(DFN,0)),"^",9)
 +35               IF $GET(SSN)
                       IF '$DATA(^DPT("SSN",SSN,DFN))
                           SET NOSSN=NOSSN+1
                           Begin DoDot:2
 +36      ; if SSN xref exists for a different patient, send exception and quit
 +37      ; otherwise, edit the field to set the xref
 +38                           IF $DATA(^DPT("SSN",SSN))
                                   Begin DoDot:3
 +39                                   DO EXC^RGHLLOG(210,"SSN xref does not exist for patient DFN #"_DFN_" for SSN "_SSN_". This SSN appears to exist for a different patient.",DFN)
                                   End DoDot:3
                                   QUIT 
 +40                           IF $LENGTH(SSN)>8
                                   KILL ARR
                                   SET ARR(2,.09)=SSN
                                   DO EDIT^VAFCPTED(DFN,"ARR(2)",".09")
                           End DoDot:2
 +41               IF '$DATA(^DPT("AICN",ICN,DFN))
                       SET NOAICN=NOAICN+1
                       SET ^DPT("AICN",ICN,DFN)=""
 +42               IF $EXTRACT(ICN,1,3)'=SITE
                       SET NICNCNT=NICNCNT+1
                       QUIT 
 +43               IF $EXTRACT(ICN,1,3)=SITE
                       Begin DoDot:2
 +44                       SET LICNCNT=LICNCNT+1
 +45                       IF '$DATA(^DPT("AICNL",1,DFN))
                               SET LOCAL=$$SETLOC^MPIF001(DFN,1)
                               SET ^DPT("AICNL",1,DFN)=""
                               SET NOAICNL=NOAICNL+1
                       End DoDot:2
               End DoDot:1
 +46      ;
 +47      ;
 +48       SET ^XTMP("RGMT","UT01","REIND","MISSING SSN XREF")=NOSSN
 +49       SET ^XTMP("RGMT","UT01","REIND","MISSING AICN XREF")=NOAICN
 +50       SET ^XTMP("RGMT","UT01","REIND","MISSING AICNL XREF")=NOAICNL
 +51       SET ^XTMP("RGMT","UT01","REIND","NATIONAL ICN COUNT")=NICNCNT
 +52       SET ^XTMP("RGMT","UT01","REIND","LOCAL ICN COUNT")=LICNCNT
 +53       SET ^XTMP("RGMT","UT01","REIND","NO ICN COUNT")=NOICNCNT
 +54      ;
 +55       IF '$DATA(RGHLMQ)
               Begin DoDot:1
 +56               WRITE !!,"Results:"
 +57               WRITE !?3,"Missing SSN xrefs created  :",?41,$JUSTIFY(NOSSN,7)
 +58               WRITE !?3,"Missing AICN xrefs created :",?41,$JUSTIFY(NOAICN,7)
 +59               WRITE !?3,"Missing AICNL xrefs created:",?41,$JUSTIFY(NOAICNL,7)
 +60               WRITE !?3,"Total DFNs processed   : ",$JUSTIFY(DFNCNT,8)
 +61               WRITE !?6,"Total National ICNs : ",$JUSTIFY(NICNCNT,8)
 +62               WRITE !?6,"Total Local ICNs    : ",$JUSTIFY(LICNCNT,8)
 +63               WRITE !?6,"Total without ICNs  : ",$JUSTIFY(NOICNCNT,8)
 +64               WRITE !!,"(List global ^XTMP(""RGMT"",""UT01"",""REIND"" for data.)"
               End DoDot:1
 +65      ;
 +66       KILL ARR,CURDT,DFN,DFNCNT,ICN,LICNCNT,LOCAL,MNODE,NICNCNT,NOAICN,NOAICNL,NOICNCNT,NOSSN,SITE,SSN,TYPE
 +67       QUIT