RGP52PST ;BIR/PTD-POST-INIT TO RETIRE EXCEPTIONS #215, 216, and 217 ;05/20/08
;;1.0;CLINICAL INFO RESOURCE NETWORK;**52**;30 Apr 99;Build 2
;
;Loop through the CIRN HL7 EXCEPTION LOG (#991.1) file.
;Find exceptions with EXCEPTION STATUS of NOT PROCESSED ("0").
;Get the TYPE which is a pointer to the CIRN HL7 EXCEPTION
;TYPE (#991.11) file. If the TYPE is 215, 216, or 217,
;mark the EXCEPTION STATUS to PROCESSED ("1"). These exception
;types will not be generated in the future.
;
EXLOG ;
;If patch RG*1.0*52 has previously been installed, quit post-init.
I $$PATCH^XPDUTL("RG*1.0*52") D BMES^XPDUTL(" Post-install previously ran; no need to reprocess file 991.1.") Q
;Else continue with post-init.
;
D BMES^XPDUTL(" The post-init routine will retire selected exceptions in")
D MES^XPDUTL(" the CIRN HL7 EXCEPTION LOG (#991.1) file.")
;
N COUNT,DA,DIC,DIE,DR,EXNUM,EXCTYP,LOGIEN,X,Y,ZNODE
S (LOGIEN,COUNT)=0
F S LOGIEN=$O(^RGHL7(991.1,LOGIEN)) Q:'LOGIEN D
.S EXNUM=0
.F S EXNUM=$O(^RGHL7(991.1,LOGIEN,1,EXNUM)) Q:'EXNUM S ZNODE=$G(^(EXNUM,0)) I $P(ZNODE,"^",5)'=1 D ;Quit if EXCEPTION STATUS (#6) equals 1 for PROCESSED
..S EXCTYP=$P(ZNODE,"^",3) ;Quit if TYPE is NOT one of these 3:
..;215 - Death Entry on MPI not VISTA
..;216 - Death Entry on Vista not MPI
..;217 - Death Entries on MPI and Vista DON'T MATCH
..I $S(EXCTYP=215:0,EXCTYP=216:0,EXCTYP=217:0,1:1) Q ;TYPE is one of the three we want to mark as PROCESSED
..;
DIE ..;Update the EXCEPTION STATUS (#6) field to '1'.
..S DA(1)=LOGIEN,DA=EXNUM,DR="6///"_1
..S DIE="^RGHL7(991.1,"_DA(1)_",1,"
..L +^RGHL7(991.1,LOGIEN):10
..D ^DIE K DA,DIE,DR
..L -^RGHL7(991.1,LOGIEN)
..S COUNT=COUNT+1
;
D BMES^XPDUTL(" A total of "_COUNT_" exceptions were retired.")
D MES^XPDUTL(" Post-install routine for RG*1*52 completed successfully.")
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRGP52PST 1877 printed Dec 13, 2024@01:42:36 Page 2
RGP52PST ;BIR/PTD-POST-INIT TO RETIRE EXCEPTIONS #215, 216, and 217 ;05/20/08
+1 ;;1.0;CLINICAL INFO RESOURCE NETWORK;**52**;30 Apr 99;Build 2
+2 ;
+3 ;Loop through the CIRN HL7 EXCEPTION LOG (#991.1) file.
+4 ;Find exceptions with EXCEPTION STATUS of NOT PROCESSED ("0").
+5 ;Get the TYPE which is a pointer to the CIRN HL7 EXCEPTION
+6 ;TYPE (#991.11) file. If the TYPE is 215, 216, or 217,
+7 ;mark the EXCEPTION STATUS to PROCESSED ("1"). These exception
+8 ;types will not be generated in the future.
+9 ;
EXLOG ;
+1 ;If patch RG*1.0*52 has previously been installed, quit post-init.
+2 IF $$PATCH^XPDUTL("RG*1.0*52")
DO BMES^XPDUTL(" Post-install previously ran; no need to reprocess file 991.1.")
QUIT
+3 ;Else continue with post-init.
+4 ;
+5 DO BMES^XPDUTL(" The post-init routine will retire selected exceptions in")
+6 DO MES^XPDUTL(" the CIRN HL7 EXCEPTION LOG (#991.1) file.")
+7 ;
+8 NEW COUNT,DA,DIC,DIE,DR,EXNUM,EXCTYP,LOGIEN,X,Y,ZNODE
+9 SET (LOGIEN,COUNT)=0
+10 FOR
SET LOGIEN=$ORDER(^RGHL7(991.1,LOGIEN))
if 'LOGIEN
QUIT
Begin DoDot:1
+11 SET EXNUM=0
+12 ;Quit if EXCEPTION STATUS (#6) equals 1 for PROCESSED
FOR
SET EXNUM=$ORDER(^RGHL7(991.1,LOGIEN,1,EXNUM))
if 'EXNUM
QUIT
SET ZNODE=$GET(^(EXNUM,0))
IF $PIECE(ZNODE,"^",5)'=1
Begin DoDot:2
+13 ;Quit if TYPE is NOT one of these 3:
SET EXCTYP=$PIECE(ZNODE,"^",3)
+14 ;215 - Death Entry on MPI not VISTA
+15 ;216 - Death Entry on Vista not MPI
+16 ;217 - Death Entries on MPI and Vista DON'T MATCH
+17 ;TYPE is one of the three we want to mark as PROCESSED
IF $SELECT(EXCTYP=215:0,EXCTYP=216:0,EXCTYP=217:0,1:1)
QUIT
+18 ;
DIE ;Update the EXCEPTION STATUS (#6) field to '1'.
+1 SET DA(1)=LOGIEN
SET DA=EXNUM
SET DR="6///"_1
+2 SET DIE="^RGHL7(991.1,"_DA(1)_",1,"
+3 LOCK +^RGHL7(991.1,LOGIEN):10
+4 DO ^DIE
KILL DA,DIE,DR
+5 LOCK -^RGHL7(991.1,LOGIEN)
+6 SET COUNT=COUNT+1
End DoDot:2
End DoDot:1
+7 ;
+8 DO BMES^XPDUTL(" A total of "_COUNT_" exceptions were retired.")
+9 DO MES^XPDUTL(" Post-install routine for RG*1*52 completed successfully.")
+10 QUIT