| [613] | 1 | ECBEP2A ;BIR/MAM,JPW-Batch Enter by Procedure (cont'd) ;1 May 96 | 
|---|
|  | 2 | ;;2.0; EVENT CAPTURE ;**4,5,10,13,17,18,23,33,41,42,54,72**;8 May 96 | 
|---|
|  | 3 | EN ;entry pt | 
|---|
|  | 4 | D HDR | 
|---|
|  | 5 | S CNT=0 | 
|---|
|  | 6 | PATS ; get patients | 
|---|
|  | 7 | W ! Q:ECOUT=1  K ECADD | 
|---|
|  | 8 | K DIC,DUOUT S DIC=2,DIC(0)="QEAMZ",DIC("A")=$S($D(ECPT):"Select Next Patient: ",1:"Select Patient: ") | 
|---|
|  | 9 | D ^DIC K DIC S OK=0 | 
|---|
|  | 10 | I $D(DUOUT)!($D(DTOUT)) S ECOUT=1 Q | 
|---|
|  | 11 | I Y<0,CNT=0 S ECOUT=2 Q | 
|---|
|  | 12 | I Y<0 D  G:ECOUT'=2 PATS I ECOUT=2 D KILL Q | 
|---|
|  | 13 | .D LIST Q:ECOUT  Q:'$O(ECPT(0))  Q:$G(ECADD)="A" | 
|---|
|  | 14 | .S ECTWO=0 K ECHOICE D ^ECBEP2B S ECOUT=2 | 
|---|
|  | 15 | I $O(ECPT(0)) S JJ="" F  S JJ=$O(ECPT(JJ)) Q:'JJ!(OK=1)  I +$G(ECPT(JJ))=+Y S OK=1 W !!,"Patient already selected.  Please select another patient.",! | 
|---|
|  | 16 | I OK=1 G PATS | 
|---|
|  | 17 | N YY,ECUP D  I $G(ECUP)="^" G PATS | 
|---|
|  | 18 | . S YY=Y,DFN=+Y D 2^VADPT S Y=YY I +VADM(6) D | 
|---|
|  | 19 | . . W !!,"WARNING ",VADM(7),!! | 
|---|
|  | 20 | . . R "Press Return to Continue or ^ to Deselect: ",ECUP:DTIME | 
|---|
|  | 21 | S CNT=CNT+1,CNT1=CNT,ECPT(CNT)=+Y_"^"_$P(Y,"^",2) D ASK | 
|---|
|  | 22 | G PATS | 
|---|
|  | 23 | ; | 
|---|
|  | 24 | LIST ; list patients | 
|---|
|  | 25 | K ECADD | 
|---|
|  | 26 | W @IOF,!,"Patients Selected for Batch Entry: ",! F I=0:0 S I=$O(ECPT(I)) Q:'I  W:I#2 ! W:I#2=0 ?40 W I_".  "_$P(ECPT(I),"^",2) | 
|---|
|  | 27 | W !!,"Is this list correct ?  YES//  " R ECYN:DTIME I '$T!(ECYN="^") S ECOUT=1 Q | 
|---|
|  | 28 | S ECYN=$E(ECYN) S:ECYN="" ECYN="Y" I "YyNn"'[ECYN W !!,"Enter <RET> if this list is complete, or NO to add or delete",!,"patients on the list.",!!,"Press <RET> to continue  " R X:DTIME G LIST | 
|---|
|  | 29 | I "Yy"[ECYN Q:$O(ECPT(0))  D NOBODY Q:ECOUT | 
|---|
|  | 30 | ADD W !!,"Add or Delete Patients ?  ADD//  " R ECADD:DTIME I '$T!(ECADD="^") S ECOUT=1 Q | 
|---|
|  | 31 | S ECADD=$E(ECADD) S:ECADD="" ECADD="A" I "AaDd"'[ECADD W !!,"Enter <RET> to make additions to the list, or D to delete a ",!,"patient from the list." K ECADD G ADD | 
|---|
|  | 32 | Q:ECADD="A" | 
|---|
|  | 33 | DEL ; delete patients from list | 
|---|
|  | 34 | I '$D(ECPT(1)) D NOBODY Q:ECOUT  G LIST | 
|---|
|  | 35 | W !!,"Select Number:  " R X:DTIME I '$T!(X="^") S ECOUT=1 Q | 
|---|
|  | 36 | I X="" Q | 
|---|
|  | 37 | I '$D(ECPT(X)) W !!,"Select the number corresponding to the patient that you would like",!,"to remove from the list.",!!,"Press <RET> to continue  " R X:DTIME S ECMORE=1 D LIST Q:ECOUT  G DEL | 
|---|
|  | 38 | F I=X+1:1:CNT S ECPT(I-1)=ECPT(I) | 
|---|
|  | 39 | K ECPT(CNT),I S CNT=CNT-1 | 
|---|
|  | 40 | W !!,"Patient deleted.",!!,"Press <RET> to continue " R X:DTIME | 
|---|
|  | 41 | G LIST | 
|---|
|  | 42 | Q | 
|---|
|  | 43 | HDR ; | 
|---|
|  | 44 | W @IOF,!,"Location: ",ECLN | 
|---|
|  | 45 | W !,"DSS Unit: ",ECDN | 
|---|
|  | 46 | I $G(ECCN)]"" W !,"Category: ",ECCN | 
|---|
|  | 47 | W !,"Procedure: "_$S(ECCPT'="":ECPTCD_" ",1:"")_$E(ECPN,1,50) | 
|---|
|  | 48 | W $S(SYN'["NOT DEFINED":" ["_SYN_"]",1:"")_"  (#"_NATN_")" | 
|---|
|  | 49 | ;- Display CPT procedure Modifiers | 
|---|
|  | 50 | I ECCPT'="" N MOD S MOD="" F  S MOD=$O(ECMOD(ECCPT,MOD)) Q:MOD=""  D | 
|---|
|  | 51 | . W !?1,"Modifier: ","    - ",MOD," ",$E($P(ECMOD(ECCPT,MOD),U),1,55) | 
|---|
|  | 52 | W !,"Procedure Date: ",ECDATE | 
|---|
|  | 53 | W ! D DSP1416^ECPRVMUT(.ECPRVARY) | 
|---|
|  | 54 | W ! | 
|---|
|  | 55 | Q | 
|---|
|  | 56 | ; | 
|---|
|  | 57 | NOBODY ;No patients selected | 
|---|
|  | 58 | I $D(ECADD),ECADD="D" W !!,"You cannot delete patients when your patient list is empty." | 
|---|
|  | 59 | I $G(ECADD)'="D" W !!,"You have selected no patients." | 
|---|
|  | 60 | R !!,"Do you wish to quit?  Y//",X:DTIME S X=$E(X) I '$T!(X="^") S ECOUT=1 Q | 
|---|
|  | 61 | S:X="" X="Y" I "yY"[X S ECOUT=1 Q | 
|---|
|  | 62 | I "nN"'[X W !,"Answer ""N"" to continue selection, or enter return to quit",! G NOBODY | 
|---|
|  | 63 | Q | 
|---|
|  | 64 | ADCAT ;add category/procedures for patients | 
|---|
|  | 65 | ;D ^ECBEN2A I ECOUT=1 Q | 
|---|
|  | 66 | ;W !!! K DIR,DIRUT,DA S DIR(0)="Y",DIR("A")="Do you want to enter another category and procedure for these patients" D ^DIR Q:$D(DIRUT)!'Y | 
|---|
|  | 67 | Q | 
|---|
|  | 68 | KILL ;kill arrays and variables | 
|---|
|  | 69 | K ECSC,ECZEC,ECIR,ECDX,ECDXN,ECVST,ECINP,ECAO,ECPTSTAT,ECMST,ECHNC,ECCV | 
|---|
|  | 70 | K ECA,ECHOICE,ECJLP,ECPT,ECO,ECON,ECV,ECDXS,ECDXIEN | 
|---|
|  | 71 | S ECOUT=0 | 
|---|
|  | 72 | Q | 
|---|
|  | 73 | ASK ; ask ord sect & vol | 
|---|
|  | 74 | W !!,"DSS Unit: "_ECDN,?50,"Category: "_ECCN,! | 
|---|
|  | 75 | W "Procedure: "_$S(ECCPT="":"",1:ECPTCD_" ")_$E(ECPN,1,50) | 
|---|
|  | 76 | W $S(SYN'["NOT DEFINED":" ["_SYN_"]",1:"")_"  (#"_NATN_")",! | 
|---|
|  | 77 | ;- Display CPT procedure Modifiers | 
|---|
|  | 78 | I ECCPT'="" N MOD S MOD="" F  S MOD=$O(ECMOD(ECCPT,MOD)) Q:MOD=""  D | 
|---|
|  | 79 | . W ?1,"Modifier: ","    - ",MOD," ",$E($P(ECMOD(ECCPT,MOD),U),1,55),! | 
|---|
|  | 80 | W "Patient: ",$P(ECPT(CNT),"^",2),! | 
|---|
|  | 81 | ; | 
|---|
|  | 82 | ;- Determine inpatient/outpatient status | 
|---|
|  | 83 | S ECPTSTAT=$$INOUTPT^ECUTL0(+$G(ECPT(CNT)),+$G(ECDT)) | 
|---|
|  | 84 | I ECPTSTAT="" D INOUTERR^ECUTL0 Q | 
|---|
|  | 85 | ; | 
|---|
|  | 86 | ;- Determine patient eligibility | 
|---|
|  | 87 | I $$CHKDSS^ECUTL0(+$G(ECD),ECPTSTAT) D | 
|---|
|  | 88 | . I $$MULTELG^ECUTL0(+$G(ECPT(CNT))) S ECELIG=+$$ELGLST^ECUTL0 | 
|---|
|  | 89 | . E  S ECELIG=+$G(VAEL(1)) | 
|---|
|  | 90 | K VAEL | 
|---|
|  | 91 | ; | 
|---|
|  | 92 | ;- Display inpatient/outpatient status message | 
|---|
|  | 93 | D DSPSTAT^ECUTL0(ECPTSTAT) | 
|---|
|  | 94 | ; | 
|---|
|  | 95 | O ; ord sect | 
|---|
|  | 96 | K DIC,DUOUT S DIC=723,DIC(0)="QEAMZ",DIC("A")="Ordering Section: " | 
|---|
|  | 97 | D ^DIC K DIC I Y<0 D DELPT(.CNT) Q | 
|---|
|  | 98 | S ECO=+Y,ECON=$P(Y,"^",2) | 
|---|
|  | 99 | V ; vol | 
|---|
|  | 100 | S:'VOL VOL=1 | 
|---|
|  | 101 | W !,"Volume: "_VOL_"//" R X:DTIME I '$T S ECOUT=1 Q | 
|---|
|  | 102 | I X="^" D DELPT(.CNT) Q | 
|---|
|  | 103 | S:X="" X=VOL I X'?1.2N!'X W !!,"Enter a whole number between 1 and 99." G V | 
|---|
|  | 104 | S ECV=X | 
|---|
|  | 105 | DIAG ;diagnosis, in/outpatient, visit | 
|---|
|  | 106 | S (ECDX,ECDXN,ECINP,ECVST,ECSC,ECAO,ECIR,ECZEC,ECMST,ECHNC,ECCV)="" | 
|---|
|  | 107 | S ECDFN=$P(ECPT(CNT),U) | 
|---|
|  | 108 | I $P(ECPCE,"~",2)="N" G NODE | 
|---|
|  | 109 | D PCEQST^ECBEN2U | 
|---|
|  | 110 | I ECOUT D DELPT(.CNT) Q | 
|---|
|  | 111 | NODE ;set node | 
|---|
|  | 112 | ;- Get associated clinic from event code screen and DSS ID if null | 
|---|
|  | 113 | S:$G(EC4)="" EC4=$P($G(^ECJ(+$O(^ECJ("AP",+ECL,+ECD,+ECC,$G(ECP),0)),"PRO")),"^",4) | 
|---|
|  | 114 | S EC4N=$S($P($G(^SC(+EC4,0)),"^")]"":$P(^(0),"^"),1:"NO ASSOCIATED CLINIC"),ECID=$P($G(^SC(+EC4,0)),"^",7) | 
|---|
|  | 115 | S ECPT(CNT)=ECPT(CNT)_"^"_ECO_"^"_ECON_"^"_ECV_"^"_ECDX_"^"_$S(ECINP="":$G(ECPTSTAT),1:ECINP)_"^"_ECVST_"^"_ECSC_"^"_ECAO_"^"_ECIR_"^"_ECZEC_"^"_EC4_"^"_ECID_"^"_ECMST_"^"_ECHNC_"^"_ECCV | 
|---|
|  | 116 | I $D(ECDXS) M ECPT(CNT,"DXS")=ECDXS K ECDXS | 
|---|
|  | 117 | S ECELPT(CNT)=$S($G(ECELIG):ECELIG,1:"") K ECPTSTAT | 
|---|
|  | 118 | Q | 
|---|
|  | 119 | ; | 
|---|
|  | 120 | DELPT(CNT) ;deselect patient due to missing required data | 
|---|
|  | 121 | N DIR,Y | 
|---|
|  | 122 | K ECPT(CNT) S CNT=CNT-1 | 
|---|
|  | 123 | W !,"Required data missing.",!,"Patient deselected...",! | 
|---|
|  | 124 | S ECOUT=0 | 
|---|
|  | 125 | S DIR(0)="E",DIR("A")="Press RETURN to continue" | 
|---|
|  | 126 | D ^DIR | 
|---|
|  | 127 | W ! | 
|---|
|  | 128 | Q | 
|---|