MCARAM0 ;WASH ISC/JKL-MUSE AUTO INSTRUMENT REINITIALIZE ;2/24/95 10:01
;;2.3;Medicine;;09/13/1996
;
;
START ;Driver for MCARECGINIT-ECG Corrupted Records Delete
;Deletes corrupted records and reinitializes error summary file
N MCDT,MCIEN,MCCNT,MCCOR,MCNAME,MCSSN,MCERR,MCEXDT,MCEKG,MCPID,MCNDT
S (MCDT,MCIEN,MCCNT,MCCOR)=0
S (MCNAME,MCSSN)=""
W !,"Warning: This process will delete all of the records listed in"
W !,"the retransmittal report."
W !!,"This process will also remove the release status of each"
W !,"automated record that has a release status."
W !!,"This process will also add a confirmation status to each"
W !,"automated record that does not have a confirmation status."
R !!,"Do you wish to continue ? N //",MCDEF:30 I '$T Q
I $E(MCDEF)'="Y" Q
W !!,"Each ""."" represents 100 records.",!!,"Deleting---"
; checks for whole records
F I=1:1 S MCIEN=$O(^MCAR(700.5,MCIEN)) Q:MCIEN=""!(MCIEN="B") S MCROOT="^MCAR(700.5," D ERR I MCERR'="" D DEL S:MCERR="CORRUPTION" MCCOR=MCCOR+1 K MCNAME,MCSSN,MCERR,MCEXDT W:MCCNT#100=0 "."
S (MCDT,MCIEN)=0,(MCNAME,MCSSN)=""
F I=1:1 S MCIEN=$O(^MCAR(691.5,MCIEN)) Q:MCIEN=""!(MCIEN="B") S MCROOT="^MCAR(691.5," D EKGCK I MCERR'="" D DEL,DELAC S:MCERR="CORRUPTION" MCCOR=MCCOR+1 K MCNAME,MCSSN,MCERR,MCEXDT W:MCCNT#100=0 "."
D ^MCARAM0A
D ^MCARAM0B
D ^MCARAM0C
D ^MCARAM0D
D ^MCARAM0E
D ^MCARAM0F
D ^MCARAM0G
W !!,MCCNT," records deleted."
W !!,"Each ""."" represents 100 records.",!!,"Removing release status and adding confirmation status---"
D ^MCARAM0H
W !!,"...done."
Q
;
ERR ;
S MCERR=""
I $D(^MCAR(700.5,MCIEN,0)),$P(^MCAR(700.5,MCIEN,0),"^",2)="MHOLT" Q
I '$D(^MCAR(700.5,MCIEN,0)) S MCDT="",MCNAME="",MCSSN="",MCERR="CORRUPTION"
S MCDT=$P(^MCAR(700.5,MCIEN,0),"^"),MCSSN=$P(^MCAR(700.5,MCIEN,0),"^",3),MCNAME=$P(^MCAR(700.5,MCIEN,0),"^",4),MCERR=$P(^MCAR(700.5,MCIEN,0),"^",5)
I MCDT="" S MCDT="NO DATE/TIME",MCERR="CORRUPTION"
I MCSSN="" S MCSSN="NO SSN",MCERR="CORRUPTION"
I MCNAME="" S MCNAME="NO PATIENT NAME ON FILE",MCERR="CORRUPTION"
I '$D(^MCAR(700.5,"B",MCDT,MCIEN)) S MCERR="CORRUPTION"
Q
;
EKGCK ;
S MCERR=""
I '$D(^MCAR(691.5,MCIEN,0)) S MCERR="CORRUPTION",MCPID="",MCDT=""
I '$D(^MCAR(691.5,MCIEN,.1)) S MCSSN="",MCNAME="",MCERR="CORRUPTION" Q
I $D(^MCAR(691.5,MCIEN,0)) S MCDT=$P(^MCAR(691.5,MCIEN,0),"^"),MCPID=$P(^MCAR(691.5,MCIEN,0),"^",2),MCSSN=^MCAR(691.5,MCIEN,.1)
S X=MCSSN,DIC="^DPT(",DIC(0)="XZ",D="SSN" D IX^DIC
I +Y>0 S MCNAME=$P(Y(0),"^")
I +Y>0 S MCPIDT=$P(Y,"^")
I +Y=-1 S MCPIDT="NOPID",MCNAME="NO PATIENT NAME ON FILE"
I MCPID'=MCPIDT S MCERR="CORRUPTION",MCNDT=$E(MCDT,1,11) D MID
K X,Y,D,MCPIDT,MCNDT
I '$D(^MCAR(691.5,"B",MCDT,MCIEN)) S MCERR="CORRUPTION"
I '$D(^MCAR(691.5,"C",MCPID,MCIEN)) S MCERR="CORRUPTION"
Q
MID ;
I '$D(^DPT(MCPID,0)) Q
I $D(^MCAR(691.5,"B",MCNDT)) S MCNAME=$P(^DPT(MCPID,0),"^"),MCSSN=$P(^DPT(MCPID,0),"^",9) Q
N MCSSN2,MCNAME2
S MCSSN2=$P(^DPT(MCPID,0),"^",9) I MCSSN2'[MCPIDT S MCNAME2=$P(^DPT(MCPID,0),"^"),MCCOR=MCCOR+1,MCCNT=MCCNT+1
K MCSSN2,MCNAME2 Q
DEL ;
S DIK=MCROOT,DA=MCIEN D ^DIK
S MCCNT=MCCNT+1 Q
;
DELAC ;
I $D(MCDT),$D(MCPID),$D(^MCAR(690,"AC",MCPID,9999999.9999-MCDT,"MCAR(691.5",MCIEN)) K ^MCAR(690,"AC",MCPID,9999999.9999-MCDT,"MCAR(691.5",MCIEN)
Q
MCARAM0 ;WASH ISC/JKL-MUSE AUTO INSTRUMENT REINITIALIZE ;2/24/95 10:01
+1 ;;2.3;Medicine;;09/13/1996
+2 ;
+3 ;
START ;Driver for MCARECGINIT-ECG Corrupted Records Delete
+1 ;Deletes corrupted records and reinitializes error summary file
+2 NEW MCDT,MCIEN,MCCNT,MCCOR,MCNAME,MCSSN,MCERR,MCEXDT,MCEKG,MCPID,MCNDT
+3 SET (MCDT,MCIEN,MCCNT,MCCOR)=0
+4 SET (MCNAME,MCSSN)=""
+5 WRITE !,"Warning: This process will delete all of the records listed in"
+6 WRITE !,"the retransmittal report."
+7 WRITE !!,"This process will also remove the release status of each"
+8 WRITE !,"automated record that has a release status."
+9 WRITE !!,"This process will also add a confirmation status to each"
+10 WRITE !,"automated record that does not have a confirmation status."
+11 READ !!,"Do you wish to continue ? N //",MCDEF:30
IF '$TEST
QUIT
+12 IF $EXTRACT(MCDEF)'="Y"
QUIT
+13 WRITE !!,"Each ""."" represents 100 records.",!!,"Deleting---"
+14 ; checks for whole records
+15 FOR I=1:1
SET MCIEN=$ORDER(^MCAR(700.5,MCIEN))
IF MCIEN=""!(MCIEN="B")
QUIT
SET MCROOT="^MCAR(700.5,"
DO ERR
IF MCERR'=""
DO DEL
IF MCERR="CORRUPTION"
SET MCCOR=MCCOR+1
KILL MCNAME,MCSSN,MCERR,MCEXDT
IF MCCNT#100=0
WRITE "."
+16 SET (MCDT,MCIEN)=0
SET (MCNAME,MCSSN)=""
+17 FOR I=1:1
SET MCIEN=$ORDER(^MCAR(691.5,MCIEN))
IF MCIEN=""!(MCIEN="B")
QUIT
SET MCROOT="^MCAR(691.5,"
DO EKGCK
IF MCERR'=""
DO DEL
DO DELAC
IF MCERR="CORRUPTION"
SET MCCOR=MCCOR+1
KILL MCNAME,MCSSN,MCERR,MCEXDT
IF MCCNT#100=0
WRITE "."
+18 DO ^MCARAM0A
+19 DO ^MCARAM0B
+20 DO ^MCARAM0C
+21 DO ^MCARAM0D
+22 DO ^MCARAM0E
+23 DO ^MCARAM0F
+24 DO ^MCARAM0G
+25 WRITE !!,MCCNT," records deleted."
+26 WRITE !!,"Each ""."" represents 100 records.",!!,"Removing release status and adding confirmation status---"
+27 DO ^MCARAM0H
+28 WRITE !!,"...done."
+29 QUIT
+30 ;
ERR ;
+1 SET MCERR=""
+2 IF $DATA(^MCAR(700.5,MCIEN,0))
IF $PIECE(^MCAR(700.5,MCIEN,0),"^",2)="MHOLT"
QUIT
+3 IF '$DATA(^MCAR(700.5,MCIEN,0))
SET MCDT=""
SET MCNAME=""
SET MCSSN=""
SET MCERR="CORRUPTION"
+4 SET MCDT=$PIECE(^MCAR(700.5,MCIEN,0),"^")
SET MCSSN=$PIECE(^MCAR(700.5,MCIEN,0),"^",3)
SET MCNAME=$PIECE(^MCAR(700.5,MCIEN,0),"^",4)
SET MCERR=$PIECE(^MCAR(700.5,MCIEN,0),"^",5)
+5 IF MCDT=""
SET MCDT="NO DATE/TIME"
SET MCERR="CORRUPTION"
+6 IF MCSSN=""
SET MCSSN="NO SSN"
SET MCERR="CORRUPTION"
+7 IF MCNAME=""
SET MCNAME="NO PATIENT NAME ON FILE"
SET MCERR="CORRUPTION"
+8 IF '$DATA(^MCAR(700.5,"B",MCDT,MCIEN))
SET MCERR="CORRUPTION"
+9 QUIT
+10 ;
EKGCK ;
+1 SET MCERR=""
+2 IF '$DATA(^MCAR(691.5,MCIEN,0))
SET MCERR="CORRUPTION"
SET MCPID=""
SET MCDT=""
+3 IF '$DATA(^MCAR(691.5,MCIEN,.1))
SET MCSSN=""
SET MCNAME=""
SET MCERR="CORRUPTION"
QUIT
+4 IF $DATA(^MCAR(691.5,MCIEN,0))
SET MCDT=$PIECE(^MCAR(691.5,MCIEN,0),"^")
SET MCPID=$PIECE(^MCAR(691.5,MCIEN,0),"^",2)
SET MCSSN=^MCAR(691.5,MCIEN,.1)
+5 SET X=MCSSN
SET DIC="^DPT("
SET DIC(0)="XZ"
SET D="SSN"
DO IX^DIC
+6 IF +Y>0
SET MCNAME=$PIECE(Y(0),"^")
+7 IF +Y>0
SET MCPIDT=$PIECE(Y,"^")
+8 IF +Y=-1
SET MCPIDT="NOPID"
SET MCNAME="NO PATIENT NAME ON FILE"
+9 IF MCPID'=MCPIDT
SET MCERR="CORRUPTION"
SET MCNDT=$EXTRACT(MCDT,1,11)
DO MID
+10 KILL X,Y,D,MCPIDT,MCNDT
+11 IF '$DATA(^MCAR(691.5,"B",MCDT,MCIEN))
SET MCERR="CORRUPTION"
+12 IF '$DATA(^MCAR(691.5,"C",MCPID,MCIEN))
SET MCERR="CORRUPTION"
+13 QUIT
MID ;
+1 IF '$DATA(^DPT(MCPID,0))
QUIT
+2 IF $DATA(^MCAR(691.5,"B",MCNDT))
SET MCNAME=$PIECE(^DPT(MCPID,0),"^")
SET MCSSN=$PIECE(^DPT(MCPID,0),"^",9)
QUIT
+3 NEW MCSSN2,MCNAME2
+4 SET MCSSN2=$PIECE(^DPT(MCPID,0),"^",9)
IF MCSSN2'[MCPIDT
SET MCNAME2=$PIECE(^DPT(MCPID,0),"^")
SET MCCOR=MCCOR+1
SET MCCNT=MCCNT+1
+5 KILL MCSSN2,MCNAME2
QUIT
DEL ;
+1 SET DIK=MCROOT
SET DA=MCIEN
DO ^DIK
+2 SET MCCNT=MCCNT+1
QUIT
+3 ;
DELAC ;
+1 IF $DATA(MCDT)
IF $DATA(MCPID)
IF $DATA(^MCAR(690,"AC",MCPID,9999999.9999-MCDT,"MCAR(691.5",MCIEN))
KILL ^MCAR(690,"AC",MCPID,9999999.9999-MCDT,"MCAR(691.5",MCIEN)
+2 QUIT