| [613] | 1 | ECBEP1B ;BIR/MAM,JPW-Batch Entry by Procedure (cont'd) ;30 Apr 96
 | 
|---|
 | 2 |  ;;2.0; EVENT CAPTURE ;**1,4,5,10,13,17,18,42,47,54,72**;8 May 96
 | 
|---|
 | 3 | CHK ; check unit for valid categories
 | 
|---|
 | 4 |  K ECC,ECCN,ECHOICE,ECEC,ECSTOP
 | 
|---|
 | 5 |  S (COUNT,EC1)=0
 | 
|---|
 | 6 |  D CATS^ECHECK1 S ECONE=""
 | 
|---|
 | 7 |  I '$D(ECC(1)) S ECC=0,ECCN="None",ECONE=0 G P
 | 
|---|
 | 8 |  I '$D(ECC(2)) S ECC=+ECC(1),ECCN=$P(ECC(1),"^",2),ECONE=1 G P
 | 
|---|
 | 9 | CATS ; select category
 | 
|---|
 | 10 |  S X="",CNT=0
 | 
|---|
 | 11 | LIST D HDRP^ECBEN2U S JJ=0 W !,"Categories within "_ECDN_": ",!
 | 
|---|
 | 12 |  S EC1=0
 | 
|---|
 | 13 |  F  S CNT=$O(ECC(CNT)) Q:'CNT!$D(ECHOICE)  D:($Y+5>IOSL) SELC Q:$D(ECHOICE)  I X="" W !,CNT_".",?5,$P(ECC(CNT),"^",2)
 | 
|---|
 | 14 |  I '$D(ECSTOP),$D(ECHOICE) S ECONE=2 G P
 | 
|---|
 | 15 | PICK W !!,"Select Number:  " R X:DTIME I '$T!("^"[X) S ECOUT=1 Q
 | 
|---|
 | 16 |  I X="" S ECOUT=2 Q
 | 
|---|
 | 17 |  I '$D(ECC(X)) W !!,"Select the number corresponding to the category, or ^ to quit.",!!,"Press <RET> to continue  " R X:DTIME S CNT=CNT-5,X="" G LIST
 | 
|---|
 | 18 |  S ECHOICE=1,ECC=$P(ECC(X),"^"),ECCN=$P(ECC(X),"^",2),ECONE=2
 | 
|---|
 | 19 | P ;check for valid procedures
 | 
|---|
 | 20 |  D PROS^ECHECK1
 | 
|---|
 | 21 |  I '$O(^TMP("ECPRO",$J,0)) D  Q:ECOUT
 | 
|---|
 | 22 |  .W !!,"Within the ",ECLN," location there are no procedures defined",!
 | 
|---|
 | 23 |  .W "for the DSS Unit ",ECDN,".  Please select another DSS Unit.",!!
 | 
|---|
 | 24 |  .W "Press <RET> to continue " R X:DTIME S ECOUT=2 Q
 | 
|---|
 | 25 |  D HDRP^ECBEN2U
 | 
|---|
 | 26 | P1 ;
 | 
|---|
 | 27 |  I '$D(^TMP("ECPRO",$J,2)) S CNT=1,ECONE=ECONE_"^1" D SETP W !,"Procedure: " D  G CHKP
 | 
|---|
 | 28 |  . W $S(ECCPT="":"",1:ECPTCD_" ")_$E(ECPN,1,50)
 | 
|---|
 | 29 |  . W $S(SYN'["NOT DEFINED":" ["_SYN_"]",1:"")_"  (#"_NATN_")",!
 | 
|---|
 | 30 | P2 ;ask mul proc
 | 
|---|
 | 31 |  S ECX="",(ECPCNT,CNT,OK)=0,EC1=1 K ECHOICE,ECSTOP
 | 
|---|
 | 32 |  S DIR("?")="^D PROS^ECBEP1B"
 | 
|---|
 | 33 |  S ECX=$$GETPRO^ECDSUTIL
 | 
|---|
 | 34 |  I +$G(ECX)=-1,(COUNT=0) S ECOUT=2 D KILLV^ECDSUTIL Q
 | 
|---|
 | 35 |  I +$G(ECX)=-1,COUNT G FILE
 | 
|---|
 | 36 |  I +$G(ECX)=1 D SRCHTM^ECDSUTIL(ECX)
 | 
|---|
 | 37 |  S ECPCNT=+$G(ECPCNT)
 | 
|---|
 | 38 |  I ECPCNT=-1!(ECPCNT=-2) D  G P2
 | 
|---|
 | 39 |  .; Don't display spacebar/return error msg since only 1 procedure
 | 
|---|
 | 40 |  . D ERRMSG^ECDSUTIL
 | 
|---|
 | 41 |  . D KILLV^ECDSUTIL
 | 
|---|
 | 42 |  I ECPCNT>0 D  G CHKP
 | 
|---|
 | 43 |  . S CNT=ECPCNT
 | 
|---|
 | 44 |  . D SETP
 | 
|---|
 | 45 |  . S OK=1,ECONE=ECONE_"^2"
 | 
|---|
 | 46 |  . D KILLV^ECDSUTIL
 | 
|---|
 | 47 |  I 'ECPCNT,$D(ECPNAME) S CNT=$$PRLST^ECDSUTIL
 | 
|---|
 | 48 |  I CNT=-1 D MSG^ECBEN2U,KILLV^ECDSUTIL Q
 | 
|---|
 | 49 |  I CNT>0 D  G CHKP
 | 
|---|
 | 50 |  . D SETP
 | 
|---|
 | 51 |  . S OK=1,ECONE=ECONE_"^2"
 | 
|---|
 | 52 |  . D KILLV^ECDSUTIL
 | 
|---|
 | 53 |  Q
 | 
|---|
 | 54 |  ;
 | 
|---|
 | 55 | PROS ;
 | 
|---|
 | 56 |  S X="",CNT=0 K ECHOICE
 | 
|---|
 | 57 | LISTP D HDRP^ECBEN2U S JJ=1 W !,"Available Procedures within "_ECDN_": ",!
 | 
|---|
 | 58 |  W ?72,"National",!,?5,"Procedure Name",?40,"Synonym",?72,"Number",!
 | 
|---|
 | 59 |  S EC1=1
 | 
|---|
 | 60 |  F   S CNT=$O(^TMP("ECPRO",$J,CNT)) Q:'CNT!$D(ECHOICE)  D:($Y+5>IOSL) SELC Q:$D(ECHOICE)  I X="" W !,CNT_".",?5,$E($P(^TMP("ECPRO",$J,CNT),"^",4),1,30),?38,$E($P(^(CNT),"^",3),1,30),?72,$P(^(CNT),"^",5)
 | 
|---|
 | 61 |  I X="" D
 | 
|---|
 | 62 |  .W !!?5,"Select by number, CPT or national code, procedure name, or synonym.",!?5,"Synonym must be preceded by the & character  (example:  &TESTSYN).",!
 | 
|---|
 | 63 |  .W ?2,"** Modifier(s) can be appended to a CPT code (ex: CPT code-mod1,mod2,mod3) **",!
 | 
|---|
 | 64 |  Q
 | 
|---|
 | 65 |  ;
 | 
|---|
 | 66 | CHKP ;
 | 
|---|
 | 67 |  ;Ask CPT procedure modifiers
 | 
|---|
 | 68 |  I ECCPT'="" D  K ECMODF,ECMODS
 | 
|---|
 | 69 |  . S ECMODS=$G(ECMODS)
 | 
|---|
 | 70 |  . S ECMODF=$$ASKMOD^ECUTL(ECCPT,ECMODS,ECDT,.ECMOD,.ECERR)
 | 
|---|
 | 71 |  I $G(ECERR) S ECOUT=2 K ECERR,ECMOD D KILLV^ECDSUTIL Q
 | 
|---|
 | 72 |  ;
 | 
|---|
 | 73 |  ;- Ask procedure reason
 | 
|---|
 | 74 |  I $G(ECP)]"" S ECSCR=+$O(^ECJ("AP",+ECL,+ECD,+ECC,ECP,0))
 | 
|---|
 | 75 |  K ECPRPTR
 | 
|---|
 | 76 |  I ECSCR>0,($P($G(^ECJ(ECSCR,"PRO")),"^",5)=1),(+$O(^ECL("AD",ECSCR,0))) D
 | 
|---|
 | 77 |  . S ECPRPTR=0
 | 
|---|
 | 78 |  . S DIC="^ECL(",DIC(0)="QEAM"
 | 
|---|
 | 79 |  . S DIC("A")="Procedure Reason: ",DIC("S")="I $P(^(0),U,2)=ECSCR"
 | 
|---|
 | 80 |  . D ^DIC K DIC
 | 
|---|
 | 81 |  . I +Y>0 S ECPRPTR=+Y
 | 
|---|
 | 82 |  K ECSCR W !
 | 
|---|
 | 83 |  ;
 | 
|---|
 | 84 |  I $G(ECCN)]"" W !,"Category: ",ECCN
 | 
|---|
 | 85 |  W !,"Procedure: ",$S(ECCPT="":"",1:ECPTCD_" ")_$E(ECPN,1,50)
 | 
|---|
 | 86 |  W $S(SYN'["NOT DEFINED":" ["_SYN_"]",1:"")_"  (#"_NATN_")"
 | 
|---|
 | 87 |  ;
 | 
|---|
 | 88 |  ;- Display CPT procedure Modifiers
 | 
|---|
 | 89 |  I ECCPT'="" N MOD S MOD="" F  S MOD=$O(ECMOD(ECCPT,MOD)) Q:MOD=""  D
 | 
|---|
 | 90 |  . W !?1,"Modifier: ","    - ",MOD," ",$E($P(ECMOD(ECCPT,MOD),U),1,55)
 | 
|---|
 | 91 |  ;- Display procedure reason
 | 
|---|
 | 92 |  I +$G(ECPRPTR) S ECPRSL=$P($G(^ECL(+ECPRPTR,0)),"^") W !,"Procedure Reason: ",$P($G(^ECR(+ECPRSL,0)),"^")
 | 
|---|
 | 93 |  D DSP1442^ECPRVMUT(.ECPRVARY)
 | 
|---|
 | 94 |  W !
 | 
|---|
 | 95 |  W !!,"Is this information correct ?  YES//  " R ECYN:DTIME I '$T!(ECYN="^") Q
 | 
|---|
 | 96 |  S ECYN=$E(ECYN) S:ECYN="" ECYN="Y"
 | 
|---|
 | 97 |  I "YyNn"'[ECYN W !!,"Enter <RET> if the information listed above is correct and should be",!,"entered for the patients selected.  Enter NO to re-enter the information",!,"for this procedure.",!
 | 
|---|
 | 98 |  I "YyNn"'[ECYN W !!,"Press <RET> to continue  " R X:DTIME G CHKP
 | 
|---|
 | 99 |  I "Nn"[ECYN,$P(ECONE,"^")<2,$P(ECONE,"^",2)<2 S ECOUT=2 Q
 | 
|---|
 | 100 |  I "Nn"[ECYN K ECHOICE,ECCN,ECP,ECPN,ECMOD,ECONE,^TMP("ECPRO",$J) G CHK
 | 
|---|
 | 101 |  ;
 | 
|---|
 | 102 |  ;- File procedure reason in local array ECEC (used in ECBEPF)
 | 
|---|
 | 103 |  S COUNT=COUNT+1,ECEC(COUNT)=ECC_"^"_ECP_"^^^^^^^"_ECCPT_"^"_EC4_"^"_ECID_$S(+$G(ECPRPTR):"^"_ECPRPTR,1:"")
 | 
|---|
 | 104 |  ;- File CPT modifiers in local array ECEC
 | 
|---|
 | 105 |  I ECCPT'="",$O(ECMOD(ECCPT,""))'="" D
 | 
|---|
 | 106 |  . M ECEC(COUNT,"MOD")=ECMOD(ECCPT)
 | 
|---|
 | 107 | FILE ;file proc
 | 
|---|
 | 108 |  I '$D(ECEC(1)) W !!,"No procedures have been selected for filing.  Please re-enter the ",!,"information for the procedures, or ^ to exit.",!!,"Press <RET> to continue" R X:DTIME S:X="^" ECOUT=1 K ECTEMP,^TMP("ECPRO",$J) G P
 | 
|---|
 | 109 |  D ^ECBEP2A Q:ECOUT  K ECA,ECCN,ECEC,ECHOICE,ECJLP,ECP,ECPN,ECPT,ECO,ECON,ECV,NATN,NODE,SYN,^TMP("ECPRO",$J),ECDX,ECDXN,ECINP,ECCPT,ECSC,ECIR,ECZEC,ECAO,ECVST,ECPTSTAT,ECMST,ECHNC,ECCV,ECMOD,ECPTCD G CHK
 | 
|---|
 | 110 | END Q
 | 
|---|
 | 111 | SETP ;set proc
 | 
|---|
 | 112 |  S ECP=$P(^TMP("ECPRO",$J,CNT),"^"),ECPN=$P(^(CNT),"^",4),SYN=$P(^(CNT),"^",3),NATN=$P(^(CNT),"^",5),VOL=$P(^(CNT),"^",6)
 | 
|---|
 | 113 |  S ECCPT=$S(ECP["EC":$P($G(^EC(725,+ECP,0)),"^",5),1:+ECP)
 | 
|---|
 | 114 |  S ECPTCD="" I ECCPT'="" D
 | 
|---|
 | 115 |  . S ECPTCD=$$CPT^ICPTCOD(ECCPT,ECDT) I +ECPTCD>0 S ECPTCD=$P(ECPTCD,U,2)
 | 
|---|
 | 116 |  W "  "_$S(ECCPT="":"",1:ECPTCD_" ")_$E(ECPN,1,50)
 | 
|---|
 | 117 |  W $S(SYN'["NOT DEFINED":" ["_SYN_"]",1:"")_"  (#"_NATN_")",!
 | 
|---|
 | 118 |  S EC4=$P(^TMP("ECPRO",$J,CNT),"^",2),EC4=$P($G(^ECJ(+EC4,"PRO")),"^",4)
 | 
|---|
 | 119 |  S EC4N=$S($P($G(^SC(+EC4,0)),"^")]"":$P(^(0),"^"),1:"NO ASSOCIATED CLINIC"),ECID=$P($G(^SC(+EC4,0)),"^",7)
 | 
|---|
 | 120 |  Q
 | 
|---|
 | 121 | SELC ; select category
 | 
|---|
 | 122 |  W !!,$S(EC1:"Press",1:"Select Number, or press")_" <RET> to continue listing "_$S(EC1:"procedures",1:"categories")_" or '^' to stop:  " R X:DTIME I '$T!(X="^") S (ECSTOP,ECHOICE)=1 Q
 | 
|---|
 | 123 |  I X="" W @IOF,!,$S(EC1:"Available Procedures",1:"Categories")_" within ",ECDN," : ",! Q
 | 
|---|
 | 124 |  I 'EC1,'$D(ECC(X)) D MSG1^ECBEN2U S ECOUT=2 Q
 | 
|---|
 | 125 |  I EC1,'$D(^TMP("ECPRO",$J,X)) D MSG1^ECBEN2U S ECOUT=2 Q
 | 
|---|
 | 126 |  S ECHOICE=1
 | 
|---|
 | 127 |  I 'EC1 S ECC=$P(ECC(X),"^"),ECCN=$P(ECC(X),"^",2) Q
 | 
|---|
 | 128 |  Q
 | 
|---|