- IVM2174F ;ALB/JAM - IVM*2.0*174 - FIX BLANK SSN IN PERSON INCOME FILE ;9/26/2018 3:21pm
- ;;2.0;INCOME VERIFICATION MATCH;**174**;21-OCT-94;Build 15
- ;
- Q
- EP ; Entry Point
- Q
- IVMFSSN(DFN,IVMJOB) ; Process only ZDP segments to store SSNs into 408.13 file if IEN is in ^XTMP("DG53970P")
- ; Called by: ^IVMCM if DFN is defined in ^XTMP("DG53970P") when processing ORU-Z10 message
- ;
- ; Input: DFN - Patient DFN from the ORU-Z10 PID
- ; IVMJOB - job number in ^XTMP("DG53970P",JOB)
- ;
- N IVMCTR,IVMSEG,IVMVAL,IEN,IVMIEN,IVMFOUND,IVMIENCNT
- ; spouse segment
- S IVMSEG=$G(^TMP($J,"IVMCM","ZDPS"))
- I IVMSEG'="" D FILESSN(DFN,IVMJOB,IVMSEG)
- ; inactive spouse segments
- S IVMCTR=0
- F S IVMCTR=$O(^TMP($J,"IVMCM","ZDPIS",IVMCTR)) Q:(IVMCTR="") D
- . S IVMSEG=$G(^TMP($J,"IVMCM","ZDPIS",IVMCTR)) Q:IVMSEG=""
- . D FILESSN(DFN,IVMJOB,IVMSEG)
- ; dependent segments
- S IVMCTR=0
- F S IVMCTR=$O(^TMP($J,"IVMCM","ZDPC",IVMCTR)) Q:(IVMCTR="") D
- . S IVMSEG=$G(^TMP($J,"IVMCM","ZDPC",IVMCTR)) Q:IVMSEG=""
- . D FILESSN(DFN,IVMJOB,IVMSEG)
- ; inactive dependent segments
- S IVMCTR=0
- F S IVMCTR=$O(^TMP($J,"IVMCM","ZDPIC",IVMCTR)) Q:(IVMCTR="") D
- . S IVMSEG=$G(^TMP($J,"IVMCM","ZDPIC",IVMCTR)) Q:IVMSEG=""
- . D FILESSN(DFN,IVMJOB,IVMSEG)
- ; All ZDP segments processed
- ; If all IENs related to the DFN are gone from ^XTMP, remove the DFN from ^XTMP
- S IVMFOUND=0
- ; For the DFN, loop over ALL the dependent IENs in the 408.12 file "B" index
- S IEN="" F S IEN=$O(^DGPR(408.12,"B",DFN,IEN)) Q:'IEN D Q:IVMFOUND
- . ; get the related 408.13 IEN
- . S IVMVAL=$P(^DGPR(408.12,IEN,0),"^",3)
- . I $P(IVMVAL,";",2)'="DGPR(408.13," Q
- . S IVMIEN=$P(IVMVAL,";",1)
- . S IVMIENCNT=0
- . ; If IVMIEN is in ^XTMP("DG53970P",IVMJOB,"SSN",count)=IVMIEN set flag
- . F S IVMIENCNT=$O(^XTMP("DG53970P",IVMJOB,"SSN",IVMIENCNT)) Q:'IVMIENCNT I ^XTMP("DG53970P",IVMJOB,"SSN",IVMIENCNT)=IVMIEN S IVMFOUND=1 Q
- ; If no IENs found, clear the DFN out of the ^XTMP global
- I 'IVMFOUND K ^XTMP("DG53970P",IVMJOB,"DFN",DFN)
- Q
- FILESSN(DFN,IVMJOB,IVMSEG) ; Check segment and store SSN in 408.13 if criteria met
- ; Input: DFN - DFN from PID segment
- ; IVMJOB - job number in ^XTMP("DG53970P",JOB)
- ; IVMSEG - the ZDPS or ZDPC segment
- N IVMPRI,IVMVAL,IVMIEN,IVMFOUND,IVMIENCNT,IVMSSN,IVMPSSNR,IVMFLG1,IVMERR
- N IVMSEX,IVMSEX13,IVMDOB,IVMDOB13,IVMRELN,IVMRELO
- N FDA,IVMERRORS,DIERR
- S IVMRELN=$P(IVMSEG,"^",6)
- ; skip segment if RELATIONSHIP is SELF
- Q:IVMRELN=1
- S IVMPRI=$P(IVMSEG,"^",7) ; ien of patient relation file 408.12
- ; if IEN not supplied, derive it by looping over dependents in 408.12 file
- I IVMPRI="" D
- . ; get Sex and DOB from segment
- . S IVMSEX=$P(IVMSEG,"^",3),IVMDOB=$$FMDATE^HLFNC($P(IVMSEG,"^",4))
- . S IVMFLG1=0
- . ; loop over dependents for this DFN in the 408.12 file
- . S IVMPRI=0 F S IVMPRI=$O(^DGPR(408.12,"B",DFN,IVMPRI)) Q:'IVMPRI D Q:IVMFLG1
- . . ; Get Relationship, DOB, and Sex from income person file 408.13
- . . D GETIP(IVMPRI,.IVMRELO,.IVMDOB13,.IVMSEX13)
- . . Q:(IVMRELO=1) ; quit if RELATIONSHIP is SELF
- . . ; match sex, dob and relationship from segment with values from 408.13 file
- . . I (IVMSEX=IVMSEX13)&(IVMDOB=IVMDOB13)&(IVMRELN=IVMRELO) S IVMFLG1=1 ; Match - found dependent in 408.13.
- ; If dependent IEN from 408.12 file not defined - Quit
- Q:IVMPRI=""
- ; get the related 408.13 IEN
- S IVMVAL=$P(^DGPR(408.12,IVMPRI,0),"^",3)
- I $P(IVMVAL,";",2)'="DGPR(408.13," Q
- S IVMIEN=$P(IVMVAL,";",1) ; ien of income person file 408.13
- S IVMFOUND=0,IVMIENCNT=0
- ; loop over IENs in ^XTMP to see if IVMIEN is there
- F S IVMIENCNT=$O(^XTMP("DG53970P",IVMJOB,"SSN",IVMIENCNT)) Q:'IVMIENCNT I ^XTMP("DG53970P",IVMJOB,"SSN",IVMIENCNT)=IVMIEN S IVMFOUND=1 Q
- Q:'IVMFOUND
- ; IVMIEN is the IEN that needs the SSN updated in 408.13 - ^DGPR(408.13,IEN,0) piece 9
- S IVMSSN=$P(IVMSEG,"^",5) ;SSN
- ; Validate the SSN and if not valid, place the error in the ^XTMP global and quit
- S IVMERR=""
- I '$$VALSSN(IVMSSN,.IVMERR) S ^XTMP("DG53970P",IVMJOB,"SSNERR",IVMIEN)=$G(IVMERR) Q
- ; strip dashes
- S IVMSSN=$TR(IVMSSN,"-")
- ; check for Pseudo SSN
- S IVMPSSNR=$P(IVMSEG,"^",10) ;Pseudo SSN Reason
- ; If not valid value, set it to null
- I IVMPSSNR]"",IVMPSSNR'="R",IVMPSSNR'="S",IVMPSSNR'="N" S IVMPSSNR=""
- ; If there is a valid Pseudo SSN Reason, then append a "P" to the end
- ; of the SSN so that it can be recognized on VistA as a pseudo
- I IVMPSSNR'="" S IVMSSN=$G(IVMSSN)_"P"
- ; Recheck the SSN field in 408.13 file and if corrupted, clean it up
- D CHKSSN(IVMIEN)
- ; Update the SSN - if not successful, place the error in the ^XTMP global and quit
- S FDA(408.13,IVMIEN_",",.09)=IVMSSN
- S FDA(408.13,IVMIEN_",",.1)=IVMPSSNR
- D FILE^DIE("K","FDA","IVMERRORS(1)")
- I +$G(DIERR) D Q
- . S IVMERR=$G(IVMERRORS(1,"DIERR",1,"TEXT",1))
- . S ^XTMP("DG53970P",IVMJOB,"SSNERR",IVMIEN)=IVMERR
- ; update was successful, clean the IEN out of the ^XTMP global
- K ^XTMP("DG53970P",IVMJOB,"SSN",IVMIENCNT),^XTMP("DG53970P",IVMJOB,"SSNERR",IVMIEN)
- Q
- VALSSN(X,ERROR) ; Validate the SSN format
- ; Input: X - SSN to validate
- ; ERROR - pass by reference, returns error text if validation fails
- ; Output: 1 if valid, 0 if invalid
- N CNT
- I X'?9N&(X'?3N1"-"2N1"-"4N) S ERROR="SSN must be either nine numbers, or be in the format nnn-nn-nnnn." Q 0
- ; strip dashes
- I X'?.AN F CNT=1:1:$L(X) I $E(X,CNT)?1P S X=$E(X,0,CNT-1)_$E(X,CNT+1,999),CNT=CNT-1
- I X'?9N S ERROR="Invalid format for SSN." Q 0
- I $E(X,1)=9 S ERROR="The SSN must not begin with 9." Q 0
- I $E(X,1,3)="000" S ERROR="First three digits of SSN cannot be zeros." Q 0
- Q 1
- GETIP(IVMPRI,IVMRELO,IVMDOB13,IVMSEX13) ; Return 408.13 Sex,DOB,Relationship via 408.12 record
- ; Input: IVMPRI - IEN of 408.12 entry
- ; IVMRELO - Relationship from 408.12 piece 2 (pass by ref)
- ; IVMDOB13 - Date of Birth from 408.13 piece 3 (pass by ref)
- ; IVMSEX13 - Sex from 408.13 piece 2 (pass by ref)
- N IVMPRN
- S IVMPRN=$G(^DGPR(408.12,+IVMPRI,0))
- S IVMRELO=$P(IVMPRN,"^",2)
- I IVMPRN']"" Q
- ; Quit if RELATIONSHIP is SELF
- Q:IVMRELO=1
- N IVMSEG13
- ; ivmseg13 is 0 node of income person file 408.13
- S IVMSEG13=$$DEM^DGMTU1(IVMPRI)
- I IVMSEG13']"" Q ; Can't find 408.13 record
- ; get Sex and DOB from 408.13 file
- S IVMSEX13=$P(IVMSEG13,"^",2),IVMDOB13=$P(IVMSEG13,"^",3)
- Q
- CHKSSN(IEN) ; Check to see if SSN IN 408.13 is corrupted and clean up if it is
- ; Input: IEN - 408.13 ien
- N IVMSSN
- S IVMSSN=$P(^DGPR(408.13,IEN,0),"^",9)
- I IVMSSN=" "!(IVMSSN=" P") D
- . S $P(^DGPR(408.13,IEN,0),"^",9)=""
- . ; we have to assume the xrefs are bad and need to be cleaned up
- . D XREF(IEN)
- Q
- XREF(IEN) ; clean "SSN", "BS" and "BS5" xrefs for this INCOME PERSON file (#408.13) record
- N VAL,XREF
- F XREF="SSN","BS","BS5" D
- . S VAL=""
- . F S VAL=$O(^DGPR(408.13,XREF,VAL)) Q:VAL="" D
- . . I $D(^DGPR(408.13,XREF,VAL,IEN)) K ^DGPR(408.13,XREF,VAL,IEN)
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HIVM2174F 6981 printed Mar 13, 2025@21:04:54 Page 2
- IVM2174F ;ALB/JAM - IVM*2.0*174 - FIX BLANK SSN IN PERSON INCOME FILE ;9/26/2018 3:21pm
- +1 ;;2.0;INCOME VERIFICATION MATCH;**174**;21-OCT-94;Build 15
- +2 ;
- +3 QUIT
- EP ; Entry Point
- +1 QUIT
- IVMFSSN(DFN,IVMJOB) ; Process only ZDP segments to store SSNs into 408.13 file if IEN is in ^XTMP("DG53970P")
- +1 ; Called by: ^IVMCM if DFN is defined in ^XTMP("DG53970P") when processing ORU-Z10 message
- +2 ;
- +3 ; Input: DFN - Patient DFN from the ORU-Z10 PID
- +4 ; IVMJOB - job number in ^XTMP("DG53970P",JOB)
- +5 ;
- +6 NEW IVMCTR,IVMSEG,IVMVAL,IEN,IVMIEN,IVMFOUND,IVMIENCNT
- +7 ; spouse segment
- +8 SET IVMSEG=$GET(^TMP($JOB,"IVMCM","ZDPS"))
- +9 IF IVMSEG'=""
- DO FILESSN(DFN,IVMJOB,IVMSEG)
- +10 ; inactive spouse segments
- +11 SET IVMCTR=0
- +12 FOR
- SET IVMCTR=$ORDER(^TMP($JOB,"IVMCM","ZDPIS",IVMCTR))
- if (IVMCTR="")
- QUIT
- Begin DoDot:1
- +13 SET IVMSEG=$GET(^TMP($JOB,"IVMCM","ZDPIS",IVMCTR))
- if IVMSEG=""
- QUIT
- +14 DO FILESSN(DFN,IVMJOB,IVMSEG)
- End DoDot:1
- +15 ; dependent segments
- +16 SET IVMCTR=0
- +17 FOR
- SET IVMCTR=$ORDER(^TMP($JOB,"IVMCM","ZDPC",IVMCTR))
- if (IVMCTR="")
- QUIT
- Begin DoDot:1
- +18 SET IVMSEG=$GET(^TMP($JOB,"IVMCM","ZDPC",IVMCTR))
- if IVMSEG=""
- QUIT
- +19 DO FILESSN(DFN,IVMJOB,IVMSEG)
- End DoDot:1
- +20 ; inactive dependent segments
- +21 SET IVMCTR=0
- +22 FOR
- SET IVMCTR=$ORDER(^TMP($JOB,"IVMCM","ZDPIC",IVMCTR))
- if (IVMCTR="")
- QUIT
- Begin DoDot:1
- +23 SET IVMSEG=$GET(^TMP($JOB,"IVMCM","ZDPIC",IVMCTR))
- if IVMSEG=""
- QUIT
- +24 DO FILESSN(DFN,IVMJOB,IVMSEG)
- End DoDot:1
- +25 ; All ZDP segments processed
- +26 ; If all IENs related to the DFN are gone from ^XTMP, remove the DFN from ^XTMP
- +27 SET IVMFOUND=0
- +28 ; For the DFN, loop over ALL the dependent IENs in the 408.12 file "B" index
- +29 SET IEN=""
- FOR
- SET IEN=$ORDER(^DGPR(408.12,"B",DFN,IEN))
- if 'IEN
- QUIT
- Begin DoDot:1
- +30 ; get the related 408.13 IEN
- +31 SET IVMVAL=$PIECE(^DGPR(408.12,IEN,0),"^",3)
- +32 IF $PIECE(IVMVAL,";",2)'="DGPR(408.13,"
- QUIT
- +33 SET IVMIEN=$PIECE(IVMVAL,";",1)
- +34 SET IVMIENCNT=0
- +35 ; If IVMIEN is in ^XTMP("DG53970P",IVMJOB,"SSN",count)=IVMIEN set flag
- +36 FOR
- SET IVMIENCNT=$ORDER(^XTMP("DG53970P",IVMJOB,"SSN",IVMIENCNT))
- if 'IVMIENCNT
- QUIT
- IF ^XTMP("DG53970P",IVMJOB,"SSN",IVMIENCNT)=IVMIEN
- SET IVMFOUND=1
- QUIT
- End DoDot:1
- if IVMFOUND
- QUIT
- +37 ; If no IENs found, clear the DFN out of the ^XTMP global
- +38 IF 'IVMFOUND
- KILL ^XTMP("DG53970P",IVMJOB,"DFN",DFN)
- +39 QUIT
- FILESSN(DFN,IVMJOB,IVMSEG) ; Check segment and store SSN in 408.13 if criteria met
- +1 ; Input: DFN - DFN from PID segment
- +2 ; IVMJOB - job number in ^XTMP("DG53970P",JOB)
- +3 ; IVMSEG - the ZDPS or ZDPC segment
- +4 NEW IVMPRI,IVMVAL,IVMIEN,IVMFOUND,IVMIENCNT,IVMSSN,IVMPSSNR,IVMFLG1,IVMERR
- +5 NEW IVMSEX,IVMSEX13,IVMDOB,IVMDOB13,IVMRELN,IVMRELO
- +6 NEW FDA,IVMERRORS,DIERR
- +7 SET IVMRELN=$PIECE(IVMSEG,"^",6)
- +8 ; skip segment if RELATIONSHIP is SELF
- +9 if IVMRELN=1
- QUIT
- +10 ; ien of patient relation file 408.12
- SET IVMPRI=$PIECE(IVMSEG,"^",7)
- +11 ; if IEN not supplied, derive it by looping over dependents in 408.12 file
- +12 IF IVMPRI=""
- Begin DoDot:1
- +13 ; get Sex and DOB from segment
- +14 SET IVMSEX=$PIECE(IVMSEG,"^",3)
- SET IVMDOB=$$FMDATE^HLFNC($PIECE(IVMSEG,"^",4))
- +15 SET IVMFLG1=0
- +16 ; loop over dependents for this DFN in the 408.12 file
- +17 SET IVMPRI=0
- FOR
- SET IVMPRI=$ORDER(^DGPR(408.12,"B",DFN,IVMPRI))
- if 'IVMPRI
- QUIT
- Begin DoDot:2
- +18 ; Get Relationship, DOB, and Sex from income person file 408.13
- +19 DO GETIP(IVMPRI,.IVMRELO,.IVMDOB13,.IVMSEX13)
- +20 ; quit if RELATIONSHIP is SELF
- if (IVMRELO=1)
- QUIT
- +21 ; match sex, dob and relationship from segment with values from 408.13 file
- +22 ; Match - found dependent in 408.13.
- IF (IVMSEX=IVMSEX13)&(IVMDOB=IVMDOB13)&(IVMRELN=IVMRELO)
- SET IVMFLG1=1
- End DoDot:2
- if IVMFLG1
- QUIT
- End DoDot:1
- +23 ; If dependent IEN from 408.12 file not defined - Quit
- +24 if IVMPRI=""
- QUIT
- +25 ; get the related 408.13 IEN
- +26 SET IVMVAL=$PIECE(^DGPR(408.12,IVMPRI,0),"^",3)
- +27 IF $PIECE(IVMVAL,";",2)'="DGPR(408.13,"
- QUIT
- +28 ; ien of income person file 408.13
- SET IVMIEN=$PIECE(IVMVAL,";",1)
- +29 SET IVMFOUND=0
- SET IVMIENCNT=0
- +30 ; loop over IENs in ^XTMP to see if IVMIEN is there
- +31 FOR
- SET IVMIENCNT=$ORDER(^XTMP("DG53970P",IVMJOB,"SSN",IVMIENCNT))
- if 'IVMIENCNT
- QUIT
- IF ^XTMP("DG53970P",IVMJOB,"SSN",IVMIENCNT)=IVMIEN
- SET IVMFOUND=1
- QUIT
- +32 if 'IVMFOUND
- QUIT
- +33 ; IVMIEN is the IEN that needs the SSN updated in 408.13 - ^DGPR(408.13,IEN,0) piece 9
- +34 ;SSN
- SET IVMSSN=$PIECE(IVMSEG,"^",5)
- +35 ; Validate the SSN and if not valid, place the error in the ^XTMP global and quit
- +36 SET IVMERR=""
- +37 IF '$$VALSSN(IVMSSN,.IVMERR)
- SET ^XTMP("DG53970P",IVMJOB,"SSNERR",IVMIEN)=$GET(IVMERR)
- QUIT
- +38 ; strip dashes
- +39 SET IVMSSN=$TRANSLATE(IVMSSN,"-")
- +40 ; check for Pseudo SSN
- +41 ;Pseudo SSN Reason
- SET IVMPSSNR=$PIECE(IVMSEG,"^",10)
- +42 ; If not valid value, set it to null
- +43 IF IVMPSSNR]""
- IF IVMPSSNR'="R"
- IF IVMPSSNR'="S"
- IF IVMPSSNR'="N"
- SET IVMPSSNR=""
- +44 ; If there is a valid Pseudo SSN Reason, then append a "P" to the end
- +45 ; of the SSN so that it can be recognized on VistA as a pseudo
- +46 IF IVMPSSNR'=""
- SET IVMSSN=$GET(IVMSSN)_"P"
- +47 ; Recheck the SSN field in 408.13 file and if corrupted, clean it up
- +48 DO CHKSSN(IVMIEN)
- +49 ; Update the SSN - if not successful, place the error in the ^XTMP global and quit
- +50 SET FDA(408.13,IVMIEN_",",.09)=IVMSSN
- +51 SET FDA(408.13,IVMIEN_",",.1)=IVMPSSNR
- +52 DO FILE^DIE("K","FDA","IVMERRORS(1)")
- +53 IF +$GET(DIERR)
- Begin DoDot:1
- +54 SET IVMERR=$GET(IVMERRORS(1,"DIERR",1,"TEXT",1))
- +55 SET ^XTMP("DG53970P",IVMJOB,"SSNERR",IVMIEN)=IVMERR
- End DoDot:1
- QUIT
- +56 ; update was successful, clean the IEN out of the ^XTMP global
- +57 KILL ^XTMP("DG53970P",IVMJOB,"SSN",IVMIENCNT),^XTMP("DG53970P",IVMJOB,"SSNERR",IVMIEN)
- +58 QUIT
- VALSSN(X,ERROR) ; Validate the SSN format
- +1 ; Input: X - SSN to validate
- +2 ; ERROR - pass by reference, returns error text if validation fails
- +3 ; Output: 1 if valid, 0 if invalid
- +4 NEW CNT
- +5 IF X'?9N&(X'?3N1"-"2N1"-"4N)
- SET ERROR="SSN must be either nine numbers, or be in the format nnn-nn-nnnn."
- QUIT 0
- +6 ; strip dashes
- +7 IF X'?.AN
- FOR CNT=1:1:$LENGTH(X)
- IF $EXTRACT(X,CNT)?1P
- SET X=$EXTRACT(X,0,CNT-1)_$EXTRACT(X,CNT+1,999)
- SET CNT=CNT-1
- +8 IF X'?9N
- SET ERROR="Invalid format for SSN."
- QUIT 0
- +9 IF $EXTRACT(X,1)=9
- SET ERROR="The SSN must not begin with 9."
- QUIT 0
- +10 IF $EXTRACT(X,1,3)="000"
- SET ERROR="First three digits of SSN cannot be zeros."
- QUIT 0
- +11 QUIT 1
- GETIP(IVMPRI,IVMRELO,IVMDOB13,IVMSEX13) ; Return 408.13 Sex,DOB,Relationship via 408.12 record
- +1 ; Input: IVMPRI - IEN of 408.12 entry
- +2 ; IVMRELO - Relationship from 408.12 piece 2 (pass by ref)
- +3 ; IVMDOB13 - Date of Birth from 408.13 piece 3 (pass by ref)
- +4 ; IVMSEX13 - Sex from 408.13 piece 2 (pass by ref)
- +5 NEW IVMPRN
- +6 SET IVMPRN=$GET(^DGPR(408.12,+IVMPRI,0))
- +7 SET IVMRELO=$PIECE(IVMPRN,"^",2)
- +8 IF IVMPRN']""
- QUIT
- +9 ; Quit if RELATIONSHIP is SELF
- +10 if IVMRELO=1
- QUIT
- +11 NEW IVMSEG13
- +12 ; ivmseg13 is 0 node of income person file 408.13
- +13 SET IVMSEG13=$$DEM^DGMTU1(IVMPRI)
- +14 ; Can't find 408.13 record
- IF IVMSEG13']""
- QUIT
- +15 ; get Sex and DOB from 408.13 file
- +16 SET IVMSEX13=$PIECE(IVMSEG13,"^",2)
- SET IVMDOB13=$PIECE(IVMSEG13,"^",3)
- +17 QUIT
- CHKSSN(IEN) ; Check to see if SSN IN 408.13 is corrupted and clean up if it is
- +1 ; Input: IEN - 408.13 ien
- +2 NEW IVMSSN
- +3 SET IVMSSN=$PIECE(^DGPR(408.13,IEN,0),"^",9)
- +4 IF IVMSSN=" "!(IVMSSN=" P")
- Begin DoDot:1
- +5 SET $PIECE(^DGPR(408.13,IEN,0),"^",9)=""
- +6 ; we have to assume the xrefs are bad and need to be cleaned up
- +7 DO XREF(IEN)
- End DoDot:1
- +8 QUIT
- XREF(IEN) ; clean "SSN", "BS" and "BS5" xrefs for this INCOME PERSON file (#408.13) record
- +1 NEW VAL,XREF
- +2 FOR XREF="SSN","BS","BS5"
- Begin DoDot:1
- +3 SET VAL=""
- +4 FOR
- SET VAL=$ORDER(^DGPR(408.13,XREF,VAL))
- if VAL=""
- QUIT
- Begin DoDot:2
- +5 IF $DATA(^DGPR(408.13,XREF,VAL,IEN))
- KILL ^DGPR(408.13,XREF,VAL,IEN)
- End DoDot:2
- End DoDot:1
- +6 QUIT