| 1 | DG311PTR ;ALB/JJG-Patient Relation Pointer Utility ; 23 MAY 2000
|
---|
| 2 | ;;5.3;Registration;**311**;Aug 13, 1993
|
---|
| 3 | ;
|
---|
| 4 | ; This routine will be run as a post-installation routine for patch
|
---|
| 5 | ; DG*5.3*311. The main purpose for this routine is to clean up any
|
---|
| 6 | ; invalid pointers to the PATIENT RELATION file (#408.12) that may
|
---|
| 7 | ; exist in the PATIENT RELATION field (408.21,.02) of the INDIVIDUAL
|
---|
| 8 | ; ANNUAL INCOME file (#408.21).
|
---|
| 9 | ;
|
---|
| 10 | POST ;entry point for post-install, setting up checkpoints
|
---|
| 11 | N %
|
---|
| 12 | I $D(XPDNM) S %=$$NEWCP^XPDUTL("DGIEN21","MAIN^DG311PTR",0)
|
---|
| 13 | Q
|
---|
| 14 | MAIN ;Main Driver
|
---|
| 15 | N DGRECNT
|
---|
| 16 | S DGRECNT=0
|
---|
| 17 | D LOOP
|
---|
| 18 | Q
|
---|
| 19 | LOOP ; Locate and correct invalid pointers
|
---|
| 20 | N DGIEN21,DGIEN22,DGNOD22,DGIEN2,DGRLIEN
|
---|
| 21 | S DGIEN21=""
|
---|
| 22 | I $D(XPDNM) S DGIEN21=+$$PARCP^XPDUTL("DGIEN21")
|
---|
| 23 | F S DGIEN21=$O(^DGMT(408.21,"C",0,DGIEN21)) Q:'DGIEN21 D
|
---|
| 24 | .S DGIEN22=0
|
---|
| 25 | .S DGIEN22=$O(^DGMT(408.22,"AIND",DGIEN21,DGIEN22)) Q:'DGIEN22
|
---|
| 26 | .S DGNOD22=$G(^DGMT(408.22,DGIEN22,0))
|
---|
| 27 | .S DGIEN2=$P(DGNOD22,"^") Q:'DGIEN2
|
---|
| 28 | .S DGRLIEN=0
|
---|
| 29 | .S DGRLIEN=$O(^DGPR(408.12,"B",DGIEN2,DGRLIEN)) Q:'DGRLIEN
|
---|
| 30 | .D UPDATE
|
---|
| 31 | .I $D(XPDNM) S %=$$UPCP^XPDUTL("DGIEN21",DGIEN21) ; Update Checkpoint
|
---|
| 32 | Q
|
---|
| 33 | UPDATE ;Update .02 field in Individual Annual Income file
|
---|
| 34 | N DATA,DGENDA,ERROR
|
---|
| 35 | S DATA(.02)=DGRLIEN,DGENDA=DGIEN21,ERROR=""
|
---|
| 36 | I $$UPD^DGENDBS(408.21,.DGENDA,.DATA,.ERROR) D
|
---|
| 37 | .S DGRECNT=DGRECNT+1
|
---|
| 38 | Q
|
---|