APCDPE2 ; IHS/CMI/LAB - DATA ENTRY ENTER CONT. ;
;;2.0;IHS PCC SUITE;;MAY 14, 2009
; Generate VISIT, then process MNEMONICS/TEMPLATE
;
START ;
S Y=APCDPAT D ^AUPNPAT
S APCDCLN=APCDPECL
K APCDALVR D ^APCDALV
I $D(APCDAFLG)#2,APCDAFLG=2 W $C(7),!,"VISIT date not valid for current patient!",! S APCDFLG=1 Q
Q:APCDVSIT=""
S APCDLVST=APCDVSIT
S DIE="^AUPNPAT(",DR=".16///TODAY",DA=APCDPAT D ^DIE
S AUPNVSIT=APCDVSIT D MOD^AUPNVSIT
I AUPNDOB]"" S X2=AUPNDOB,X1=APCDDATE D ^%DTC S AUPNDAYS=X
K DR
I $P($G(APCDPARM),U,18)'="N" S APCDVDSP=APCDVSIT D:$D(APCDVSIT("NEW")) ^APCDVDSP D:'$D(APCDVSIT("NEW")) ^APCDEWHA K APCDVDSP
I APCDTYPE'="C","TC"'[APCDCAT,'$D(APCDVSIT("NEW")) S X="TM" D GET1
I $P($G(APCDPARM),U,16)="Y",$E($P(^AUTTLOC(APCDLOC,0),U,10),5,6)>49 S X="OLOC" D GET1
I APCDCAT="H",APCDTYPE'="C",'$D(^AUPNVINP("AD",APCDVSIT)) S X="IP" D GET1
S APCDPEH=0 F S APCDPEH=$O(APCDCSEL(APCDPEH)) Q:APCDPEH'=+APCDPEH S X=APCDCSEL(APCDPEH),X=$P(^APCDTKW(X,0),U) D GET1
W !!,"You may now enter other data using any of the data entry mnemonics.",!,"To display the visit type DISP, to display a health summary type DHS.",!,"Press enter to exit.",!
D MNEPROC
Q
;
MNEPROC ; PROCESS MNEMONICS UNTIL DONE
S APCDMPQ=0
F D GETMNE Q:APCDMPQ
I $G(APCDVSIT) D EP^APCDKDE
D GETMNEK
K APCDMPQ,APCDREGU
W !
Q
;
GETMNE ; GET MNEMONIC
W !
S DIC="^APCDTKW(",DIC(0)="AEMQ",DIC("A")="MNEMONIC: ",DIC("S")="I $L($P(^(0),U))<5" D ^DIC K DIC("A"),DIC("S")
I Y<0 D CHECK Q
S APCDMNE=+Y,APCDMNE("NAME")=$P(Y,U,2)
K APCDMOD
D ^APCDEA3
I $D(APCDEQX) D ^APCDEQX I $D(APCDEQX) S APCDMPQ=1 Q
I $D(APCDMOD) W !!,"Switching to Modify Mode for ONE Mnemonic ONLY!" S APCDMODE="M",APCDVSIT=APCDLVST,APCDVLK=APCDVSIT D GETMNE K APCDVLK,APCDMOD S APCDMODE="A" W !!,"Switching back to ENTER Mode!" Q
Q
;
GETMNEK ; KILL GETMNE SPECIFIC VARIABLES
K APCDVSIT,APCDX,APCDEQX,APCDREGU
Q
;
CHECK ; SEE IF PV AND PRO ENTERED CORRECTLY
Q:$D(APCDMOD)
S APCDMPQ=1
K APCDNOCL D ^APCDVCHK
Q:"EX"[$P(^AUPNVSIT(APCDVSIT,0),U,7)
I APCDMODE'="M",'$D(^AUPNVPOV("AD",APCDVSIT)),'$D(^AUPNVPRN("AD",APCDVSIT)) W !,"PV mnemonic required!",!,APCDBEEP S:'$D(DTOUT) APCDMPQ=0 Q
I APCDMODE'="M",'$D(^AUPNVPRV("AD",APCDVSIT)) W !,"PRV mnemonic required!",!,APCDBEEP S:'$D(DTOUT) APCDMPQ=0 Q
I APCDMODE'="M",$D(APCDNOCL) W !,"CL mnemonic required!",!,$C(7) S:'$D(DTOUT) APCDMPQ=0 K APCDNOCL Q
I APCDMODE'="M",$P(^AUPNVSIT(APCDVSIT,0),U,7)="H",$P(^(0),U,3)'="C",'$D(^AUPNVINP("AD",APCDVSIT)) W !,"IP Mnemonic required on Hospitalizations!",$C(7) S:'$D(DTOUT) APCDMPQ=0 Q
I APCDMODE'="M",$P(^AUPNVSIT(APCDVSIT,0),U,3)="C",'$D(^AUPNVCHS("AD",APCDVSIT)) W !,"CHA, CHH or CHI mnemonic required with Contract Visits!",$C(7) S:'$D(DTOUT) APCDMPQ=0 Q
Q:'APCDMPQ
D DEDT^APCDEA2(APCDLVST) I $P(APCDPARM,U,5)="Y",'$D(^APCDFORM("AB",APCDLVST)) S APCDFV=APCDLVST D ^APCDFORM K APCDFV
I $P(APCDPARM,U,5)="Y",$D(^AUPNVTC("AD",APCDVSIT)) S APCDFV=APCDVSIT D ^APCDFCTC K APCDFV ;IHS/CMI/LAB - patch 2 added this line to do tc tracking
Q
;
GET1 ;
W !!
S DIC="^APCDTKW(",DIC(0)="EMQX" D ^DIC K DIC
I Y<0 W !!,$C(7),$C(7),X," Mnemonic is Missing - Notify your Supervisor!" K DIC,X Q
S APCDMNE=+Y,APCDMNE("NAME")=$P(Y,U,2)
D ^APCDEA3
Q
;
APCDPE2 ; IHS/CMI/LAB - DATA ENTRY ENTER CONT. ;
+1 ;;2.0;IHS PCC SUITE;;MAY 14, 2009
+2 ; Generate VISIT, then process MNEMONICS/TEMPLATE
+3 ;
START ;
+1 SET Y=APCDPAT
DO ^AUPNPAT
+2 SET APCDCLN=APCDPECL
+3 KILL APCDALVR
DO ^APCDALV
+4 IF $DATA(APCDAFLG)#2
IF APCDAFLG=2
WRITE $CHAR(7),!,"VISIT date not valid for current patient!",!
SET APCDFLG=1
QUIT
+5 IF APCDVSIT=""
QUIT
+6 SET APCDLVST=APCDVSIT
+7 SET DIE="^AUPNPAT("
SET DR=".16///TODAY"
SET DA=APCDPAT
DO ^DIE
+8 SET AUPNVSIT=APCDVSIT
DO MOD^AUPNVSIT
+9 IF AUPNDOB]""
SET X2=AUPNDOB
SET X1=APCDDATE
DO ^%DTC
SET AUPNDAYS=X
+10 KILL DR
+11 IF $PIECE($GET(APCDPARM),U,18)'="N"
SET APCDVDSP=APCDVSIT
IF $DATA(APCDVSIT("NEW"))
DO ^APCDVDSP
IF '$DATA(APCDVSIT("NEW"))
DO ^APCDEWHA
KILL APCDVDSP
+12 IF APCDTYPE'="C"
IF "TC"'[APCDCAT
IF '$DATA(APCDVSIT("NEW"))
SET X="TM"
DO GET1
+13 IF $PIECE($GET(APCDPARM),U,16)="Y"
IF $EXTRACT($PIECE(^AUTTLOC(APCDLOC,0),U,10),5,6)>49
SET X="OLOC"
DO GET1
+14 IF APCDCAT="H"
IF APCDTYPE'="C"
IF '$DATA(^AUPNVINP("AD",APCDVSIT))
SET X="IP"
DO GET1
+15 SET APCDPEH=0
FOR
SET APCDPEH=$ORDER(APCDCSEL(APCDPEH))
IF APCDPEH'=+APCDPEH
QUIT
SET X=APCDCSEL(APCDPEH)
SET X=$PIECE(^APCDTKW(X,0),U)
DO GET1
+16 WRITE !!,"You may now enter other data using any of the data entry mnemonics.",!,"To display the visit type DISP, to display a health summary type DHS.",!,"Press enter to exit.",!
+17 DO MNEPROC
+18 QUIT
+19 ;
MNEPROC ; PROCESS MNEMONICS UNTIL DONE
+1 SET APCDMPQ=0
+2 FOR
DO GETMNE
IF APCDMPQ
QUIT
+3 IF $GET(APCDVSIT)
DO EP^APCDKDE
+4 DO GETMNEK
+5 KILL APCDMPQ,APCDREGU
+6 WRITE !
+7 QUIT
+8 ;
GETMNE ; GET MNEMONIC
+1 WRITE !
+2 SET DIC="^APCDTKW("
SET DIC(0)="AEMQ"
SET DIC("A")="MNEMONIC: "
SET DIC("S")="I $L($P(^(0),U))<5"
DO ^DIC
KILL DIC("A"),DIC("S")
+3 IF Y<0
DO CHECK
QUIT
+4 SET APCDMNE=+Y
SET APCDMNE("NAME")=$PIECE(Y,U,2)
+5 KILL APCDMOD
+6 DO ^APCDEA3
+7 IF $DATA(APCDEQX)
DO ^APCDEQX
IF $DATA(APCDEQX)
SET APCDMPQ=1
QUIT
+8 IF $DATA(APCDMOD)
WRITE !!,"Switching to Modify Mode for ONE Mnemonic ONLY!"
SET APCDMODE="M"
SET APCDVSIT=APCDLVST
SET APCDVLK=APCDVSIT
DO GETMNE
KILL APCDVLK,APCDMOD
SET APCDMODE="A"
WRITE !!,"Switching back to ENTER Mode!"
QUIT
+9 QUIT
+10 ;
GETMNEK ; KILL GETMNE SPECIFIC VARIABLES
+1 KILL APCDVSIT,APCDX,APCDEQX,APCDREGU
+2 QUIT
+3 ;
CHECK ; SEE IF PV AND PRO ENTERED CORRECTLY
+1 IF $DATA(APCDMOD)
QUIT
+2 SET APCDMPQ=1
+3 KILL APCDNOCL
DO ^APCDVCHK
+4 IF "EX"[$PIECE(^AUPNVSIT(APCDVSIT,0),U,7)
QUIT
+5 IF APCDMODE'="M"
IF '$DATA(^AUPNVPOV("AD",APCDVSIT))
IF '$DATA(^AUPNVPRN("AD",APCDVSIT))
WRITE !,"PV mnemonic required!",!,APCDBEEP
IF '$DATA(DTOUT)
SET APCDMPQ=0
QUIT
+6 IF APCDMODE'="M"
IF '$DATA(^AUPNVPRV("AD",APCDVSIT))
WRITE !,"PRV mnemonic required!",!,APCDBEEP
IF '$DATA(DTOUT)
SET APCDMPQ=0
QUIT
+7 IF APCDMODE'="M"
IF $DATA(APCDNOCL)
WRITE !,"CL mnemonic required!",!,$CHAR(7)
IF '$DATA(DTOUT)
SET APCDMPQ=0
KILL APCDNOCL
QUIT
+8 IF APCDMODE'="M"
IF $PIECE(^AUPNVSIT(APCDVSIT,0),U,7)="H"
IF $PIECE(^(0),U,3)'="C"
IF '$DATA(^AUPNVINP("AD",APCDVSIT))
WRITE !,"IP Mnemonic required on Hospitalizations!",$CHAR(7)
IF '$DATA(DTOUT)
SET APCDMPQ=0
QUIT
+9 IF APCDMODE'="M"
IF $PIECE(^AUPNVSIT(APCDVSIT,0),U,3)="C"
IF '$DATA(^AUPNVCHS("AD",APCDVSIT))
WRITE !,"CHA, CHH or CHI mnemonic required with Contract Visits!",$CHAR(7)
IF '$DATA(DTOUT)
SET APCDMPQ=0
QUIT
+10 IF 'APCDMPQ
QUIT
+11 DO DEDT^APCDEA2(APCDLVST)
IF $PIECE(APCDPARM,U,5)="Y"
IF '$DATA(^APCDFORM("AB",APCDLVST))
SET APCDFV=APCDLVST
DO ^APCDFORM
KILL APCDFV
+12 ;IHS/CMI/LAB - patch 2 added this line to do tc tracking
IF $PIECE(APCDPARM,U,5)="Y"
IF $DATA(^AUPNVTC("AD",APCDVSIT))
SET APCDFV=APCDVSIT
DO ^APCDFCTC
KILL APCDFV
+13 QUIT
+14 ;
GET1 ;
+1 WRITE !!
+2 SET DIC="^APCDTKW("
SET DIC(0)="EMQX"
DO ^DIC
KILL DIC
+3 IF Y<0
WRITE !!,$CHAR(7),$CHAR(7),X," Mnemonic is Missing - Notify your Supervisor!"
KILL DIC,X
QUIT
+4 SET APCDMNE=+Y
SET APCDMNE("NAME")=$PIECE(Y,U,2)
+5 DO ^APCDEA3
+6 QUIT
+7 ;