Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PXDELFIX

PXDELFIX.m

Go to the documentation of this file.
  1. PXDELFIX ;BAY/RJV-CLEAN ENCOUNTERS POINTING TO VISITS THAT DON'T EXIST PART 2. ;14-JUN-2005
  1. ;;1.0;PCE;**153**;14-JUL-2004
  1. Q
  1. ;**********************************************************
  1. ;Two entry points. FIXALL and FIXIND. Called from PXDELENC.
  1. ;**********************************************************
  1. FIXALL ; Fix all encounters.
  1. N DA,DIK,PXPAT,PXSDATE,PXENC,PXSEC,PXCOUNT,PXPATNM,Y
  1. S PXPAT="",PXSDATE="",PXENC=""
  1. S PXCOUNT=$G(^XTMP("PXDELENC","PXENC","PXCOUNT"))
  1. I PXCOUNT=0 D Q
  1. .W !!,"There are no build entries to correct!"
  1. .D WAIT^PXDELENC
  1. I $G(^XTMP("PXDELENC","END BUILD"))="RUNNING" D Q
  1. .W !!,"Build is running, please wait until complete!"
  1. .D WAIT^PXDELENC
  1. W !!,"There are "_$G(PXCOUNT)_" entries to correct."
  1. S DIR("A")="Do you wish to continue? "
  1. S DIR(0)="Y",DIR("B")="YES"
  1. D ^DIR Q:$D(DIRUT)
  1. Q:Y=0
  1. K DIR,DA,DIRUT
  1. F S PXPAT=$O(^XTMP("PXDELENC","PXENC",PXPAT)) Q:PXPAT="" D
  1. .F S PXSDATE=$O(^XTMP("PXDELENC","PXENC",PXPAT,PXSDATE)) Q:PXSDATE="" D
  1. ..F S PXENC=$O(^XTMP("PXDELENC","PXENC",PXPAT,PXSDATE,PXENC)) Q:PXENC="" D
  1. ...S PXSEC=$G(^XTMP("PXDELENC","PXENC",PXPAT,PXSDATE,PXENC))
  1. ...S PXPATNM=$P($G(^DPT(PXPAT,0)),"^",1)
  1. ...S $P(^DPT(PXPAT,"S",PXSDATE,0),"^",2)="NT"
  1. ...S $P(^DPT(PXPAT,"S",PXSDATE,0),"^",20)=""
  1. ...S DIK="^SCE(",DA=PXENC D ^DIK
  1. ...I $G(PXSEC)'="" S DIK="^SCE(",DA=PXSEC D ^DIK
  1. ...S PXCOUNT=PXCOUNT-1
  1. ...K ^XTMP("PXDELENC","PXENC",PXPAT,PXSDATE,PXENC)
  1. ...W !!,?3,"Encounter: ",?12,$G(PXENC)_" - "_$G(PXPATNM),?45," Fixed!",!
  1. ...S DA=PXPAT D FIXIHS
  1. S ^XTMP("PXDELENC","PXENC","PXCOUNT")=PXCOUNT
  1. D WAIT^PXDELENC
  1. Q
  1. FIXIND ; Fix individual encounters.
  1. N PXPAT,PXSDATE,PXSDTE,PXENC,PXVISIT,PXPRIM,PXEXIST,PXCOUNT,DIC,PXSEC,Y
  1. I $G(^XTMP("PXDELENC","END BUILD"))="RUNNING" D Q
  1. .W !!,"Build is running, please wait until complete!"
  1. .D WAIT^PXDELENC
  1. S DIC(0)="AEMQ"
  1. D ^DPTLK I Y=-1 Q
  1. Q:$D(DIRUT)
  1. S PXPAT=$P(Y,"^")
  1. S PXSDATE=0,PXENC="",PXPRIM="",PXSEC="",PXEXIST=0
  1. S PXCOUNT=$G(^XTMP("PXDELENC","PXENC","PXCOUNT"))
  1. W !!,"Processing...."
  1. D HEADER
  1. DISPLAY ;
  1. F S PXSDATE=$O(^SCE("ADFN",PXPAT,PXSDATE)) Q:PXSDATE=""!($D(DIRUT)) D Q:$D(DIRUT)
  1. .F S PXENC=$O(^SCE("ADFN",PXPAT,PXSDATE,PXENC)) Q:PXENC=""!($D(DIRUT)) D
  1. ..S PXVISIT=$P($G(^SCE(PXENC,0)),"^",5)
  1. ..S PXPRIM=$P($G(^SCE(PXENC,0)),"^",6)
  1. ..I $G(PXVISIT)'="" Q
  1. ..I $G(PXPRIM)'="" Q
  1. ..I $G(PXVISIT)="",$G(PXPRIM)="",$D(^DPT(PXPAT,"S",PXSDATE,0)) D
  1. ...S Y=PXSDATE D DD^%DT S PXSDTE=Y,PXEXIST=1
  1. ...S PXPATNM=$P($G(^DPT(PXPAT,0)),"^",1)
  1. ...W ?3,PXPAT_" - "_PXPATNM,?35,PXSDTE,?55,PXENC,!
  1. ...S ^XTMP("PXDELENC","FIXIND",PXPAT,PXSDATE,PXENC)=""
  1. I $G(PXEXIST)=0 G NONE
  1. S DIR("A")="This will fix all entries for this Patient. Continue? "
  1. S DIR(0)="Y",DIR("B")="YES"
  1. D ^DIR
  1. G:$D(DIRUT) FIXIND
  1. K DIR,DA,DIRUT
  1. I Y=0 G FIXIND
  1. FIX ;
  1. N PXPAT,PXSDTE,PXENC
  1. S PXPAT="",PXSDTE="",PXENC=""
  1. F S PXPAT=$O(^XTMP("PXDELENC","FIXIND",PXPAT)) Q:PXPAT="" D
  1. .F S PXSDTE=$O(^XTMP("PXDELENC","FIXIND",PXPAT,PXSDTE)) Q:PXSDTE="" D
  1. ..F S PXENC=$O(^XTMP("PXDELENC","FIXIND",PXPAT,PXSDTE,PXENC)) Q:PXENC="" D
  1. ...S $P(^DPT(PXPAT,"S",PXSDTE,0),"^",20)=""
  1. ...S $P(^DPT(PXPAT,"S",PXSDTE,0),"^",2)="NT"
  1. ...I $P($G(^SCE(PXENC+1,0)),"^",6)=PXENC S PXSEC=PXENC+1
  1. ...S DIK="^SCE(",DA=PXENC D ^DIK
  1. ...I $G(PXSEC)'="" S DIK="^SCE(",DA=PXSEC D ^DIK
  1. ...I $D(^XTMP("PXDELENC","PXENC",PXPAT,PXSDTE,PXENC)) S PXCOUNT=PXCOUNT-1
  1. ...K ^XTMP("PXDELENC","PXENC",PXPAT,PXSDTE,PXENC)
  1. ...K ^XTMP("PXDELENC","FIXIND",PXPAT,PXSDTE,PXENC)
  1. ...W !!,?3,"Encounter: ",?12,$G(PXENC)_" - "_$G(PXPATNM),?45," Fixed!",!
  1. ...S DA=PXPAT D FIXIHS
  1. S ^XTMP("PXDELENC","PXENC","PXCOUNT")=PXCOUNT
  1. Q:$D(DIRUT)
  1. I PXEXIST=1 D
  1. .W !!,"No more missing visits to correct for this patient!"
  1. .D WAIT^PXDELENC
  1. NONE ;
  1. I PXEXIST=0 D
  1. .W !!,"No missing visits found for this patient!"
  1. .D WAIT^PXDELENC
  1. K ^XTMP("PXDELENC","FIXIND")
  1. G FIXIND
  1. Q
  1. W !,?3,"Patient IEN - Name",?35,"Appt Date",?55,"Encounter"
  1. W !,?3,"==================",?35,"=========",?55,"=========",!
  1. Q
  1. FIXIHS ; Will fix the IHS Patient (9000001) file entries.
  1. N PX
  1. S U="^"
  1. D CHECK^PXXDPT Q:'$T
  1. S PX=$P($G(^DPT(DA,0)),U,9)
  1. D SETSSN^PXXDPT
  1. K DR,DIE,DA,PXDA
  1. Q
  1. ;