| [613] | 1 | ECBEN2U ;BIR/MAM,JPW-Categories and Procedures Selection ;12 Feb 96
 | 
|---|
 | 2 |  ;;2.0; EVENT CAPTURE ;**4,5,7,10,17,18,23,42,47,54,72**;8 May 96
 | 
|---|
 | 3 | END Q
 | 
|---|
 | 4 | HDR ;screen header
 | 
|---|
 | 5 |  W @IOF,!,"Location: ",ECLN
 | 
|---|
 | 6 |  W !,"DSS Unit: ",$E(ECDN,1,30) I $G(ECCN)]"" W ?48,"Category: ",$E(ECCN,1,20)
 | 
|---|
 | 7 |  W !,"Ordering Section: ",ECON
 | 
|---|
 | 8 |  W !,"Procedure Date: ",ECDATE,!
 | 
|---|
 | 9 |  D DSP1416^ECPRVMUT(.ECPRVARY)
 | 
|---|
 | 10 |  W !
 | 
|---|
 | 11 |  Q
 | 
|---|
 | 12 | MSG W !!,"No procedures entered.  No Action Taken.",!!,"Press <RET> to continue " R X:DTIME S ECOUT=1
 | 
|---|
 | 13 |  Q
 | 
|---|
 | 14 | MSG1 ;
 | 
|---|
 | 15 |  W !!,"Please enter the number that corresponds to the "_$S(OK:"procedure",1:"category")_" from which",!,"you would like to select a procedure.  If you would like to continue",!,"with the list, press <RET>.  Enter ^ to quit."
 | 
|---|
 | 16 |  S CNT=CNT-5
 | 
|---|
 | 17 |  Q
 | 
|---|
 | 18 | HDRP ;hdr batch by proc
 | 
|---|
 | 19 |  W @IOF,!,"Location: ",ECLN
 | 
|---|
 | 20 |  I $G(ECCN)]"" W !,"Category: ",ECCN
 | 
|---|
 | 21 |  W !,"Procedure Date: ",ECDATE
 | 
|---|
 | 22 |  D DSP1442^ECPRVMUT(.ECPRVARY)
 | 
|---|
 | 23 |  W !
 | 
|---|
 | 24 |  Q
 | 
|---|
 | 25 | PCEQST ;entry pt for PCE questions
 | 
|---|
 | 26 |  S (ECDX,ECDXN,ECVST,ECSC,ECAO,ECIR,ECZEC,ECMST,ECHNC,ECCV)=""
 | 
|---|
 | 27 | INP ;- Set inpatient/outpatient status
 | 
|---|
 | 28 |  S ECINP=$G(ECPTSTAT)
 | 
|---|
 | 29 |  D CLINIC I ECOUT Q
 | 
|---|
 | 30 |  ;ask dx
 | 
|---|
 | 31 |  D DIAG^ECUTL2 I ECOUT Q
 | 
|---|
 | 32 |  I $P(ECPCE,"~",2)="O"&(ECINP'="O") Q
 | 
|---|
 | 33 |  D VISIT
 | 
|---|
 | 34 |  Q
 | 
|---|
 | 35 | CLINIC ;display default clinic
 | 
|---|
 | 36 |  Q:$P(ECPCE,"~",2)="N"  I $P(ECPCE,"~",2)="O"&(ECINP'="O") Q
 | 
|---|
 | 37 |  K DA,DIR,DIROUT,DIRUT,DTOUT,DUOUT S DIR(0)="721,26",DIR("A")="Associated Clinic",DIR("?")="An active clinic is required. Enter an active clinic or an ^ to exit"
 | 
|---|
 | 38 |  I EC4,EC4N'["NO ASSOCIATED CLINIC" S DIR("B")=EC4N
 | 
|---|
 | 39 |  D ^DIR K DIR
 | 
|---|
 | 40 |  I Y S EC4=+Y,ECID=$P($G(^SC(+EC4,0)),"^",7)
 | 
|---|
 | 41 |  I $D(DTOUT)!$D(DUOUT) S ECOUT=1 Q
 | 
|---|
 | 42 |  I +EC4,'$G(ECOUT) D CLIN I 'ECPCL W !!,"You must enter an active clinic now.",! G CLINIC
 | 
|---|
 | 43 |  I $D(DTOUT)!$D(DUOUT)!('Y)!(Y<0) W:$P(ECPCE,"~",2)'="N" !!,"Please note that this record cannot be sent to PCE without an active clinic.",!!
 | 
|---|
 | 44 |  Q
 | 
|---|
 | 45 | VISIT ;ask visit info
 | 
|---|
 | 46 |  Q:ECINP="I"
 | 
|---|
 | 47 |  ;
 | 
|---|
 | 48 |  ;- Ask classification questions applicable to patient and file in #721
 | 
|---|
 | 49 |  I $$ASKCLASS^ECUTL1(+$G(ECPT(CNT)),.ECCLFLDS,.ECOUT,ECPCE,ECINP),($O(ECCLFLDS(""))]"") D SETCLASS^ECUTL1(.ECCLFLDS)
 | 
|---|
 | 50 |  I +$G(ECOUT) Q
 | 
|---|
 | 51 |  K ECCLFLDS
 | 
|---|
 | 52 |  Q
 | 
|---|
 | 53 | PCEE ;checks edited data and sets PCE node for filing
 | 
|---|
 | 54 |  S ECVST=+$P(EC(0),"^",21) I 'ECVST G PCE
 | 
|---|
 | 55 | DEL ;delete visit and refresh data to PCE
 | 
|---|
 | 56 |  K DA,DIE,DR S DA=ECFN,DIE=721,DR="25///@;28///@" D ^DIE K DA,DIE,DR
 | 
|---|
 | 57 |  ;
 | 
|---|
 | 58 |  ;* Prepare all EC records with same Visit file entry to resend to PCE
 | 
|---|
 | 59 |  N ECVAR1 S ECVAR1=$$FNDVST^ECUTL(ECVST,ECFN) K ECVAR1
 | 
|---|
 | 60 |  ;
 | 
|---|
 | 61 |  ;- Set VALQUIET to stop Amb Care validator from broadcasting to screen
 | 
|---|
 | 62 |  S VALQUIET=1,ECVV=$$DELVFILE^PXAPI("ALL",ECVST) K ECVST,VALQUIET
 | 
|---|
 | 63 | PCE ;set data for PCE filing
 | 
|---|
 | 64 |  Q:$P(ECPCE,"~",2)="N"  I $P(ECPCE,"~",2)="O"&(ECINP'="O") Q
 | 
|---|
 | 65 |  S ECREAS=""
 | 
|---|
 | 66 |  ;
 | 
|---|
 | 67 |  ;- Kill Reason node
 | 
|---|
 | 68 |  D KILLR
 | 
|---|
 | 69 |  I EC4 D CLIN^ECPCEU
 | 
|---|
 | 70 |  I 'EC4 S ECREAS="Clinic missing;"
 | 
|---|
 | 71 |  I 'ECDX S ECREAS="Diagnosis not entered;"
 | 
|---|
 | 72 |  I EC4,'ECPCL S ECREAS=ECREAS_"Clinic inactive;"
 | 
|---|
 | 73 |  I 'ECCPT S ECREAS=ECREAS_"CPT code missing;"
 | 
|---|
 | 74 |  I ECREAS]"" S ^ECH(ECFN,"R")=ECREAS K ECPCL,ECREAS Q
 | 
|---|
 | 75 |  I '$D(^ECH(ECFN,0)) Q
 | 
|---|
 | 76 |  I '$D(^ECH(ECFN,"P")) Q
 | 
|---|
 | 77 |  S PN=^ECH(ECFN,0),PNP=^ECH(ECFN,"P")
 | 
|---|
 | 78 |  S PNMOD="" I $D(^ECH(ECFN,"MOD")) D
 | 
|---|
 | 79 |  . N MOD,MODS S MODS=0 F  S MODS=$O(^ECH(ECFN,"MOD",MODS)) Q:'MODS  D
 | 
|---|
 | 80 |  . . S MOD=$P($G(^ECH(ECFN,"MOD",MODS,0)),U)
 | 
|---|
 | 81 |  . . S MOD=$$MOD^ICPTMOD(MOD,"I",$P(PN,U,3)) I +MOD<0 Q
 | 
|---|
 | 82 |  . . S PNMOD=$S(PNMOD'="":PNMOD_";",1:"")_$P(MOD,U,2)
 | 
|---|
 | 83 | SET ;set data pieces
 | 
|---|
 | 84 |  S ECP3=+$P(PN,"^",3) I ECP3'["." K ECP3 D DELNOD Q
 | 
|---|
 | 85 |  S ECP2=+$P(PN,"^",2) I 'ECP2 K ECP2 D DELNOD Q
 | 
|---|
 | 86 |  S ECP19=+$P(PN,"^",19) I 'ECP19 K ECP19 D DELNOD Q
 | 
|---|
 | 87 |  S ECP4=+$P(PN,"^",4) I 'ECP4 K ECP4 D DELNOD Q
 | 
|---|
 | 88 |  S ECP20=+$P(PN,"^",20) I 'ECP20 K ECP20 D DELNOD Q
 | 
|---|
 | 89 |  S ECP10=+$P(PN,"^",10) I 'ECP10 K ECP10 D DELNOD Q
 | 
|---|
 | 90 |  S ECPP1=+$P(PNP,"^") I 'ECPP1 K ECPP1 D DELNOD Q
 | 
|---|
 | 91 |  S ECPP2=+$P(PNP,"^",2) I 'ECPP2 K ECPP2 D DELNOD Q
 | 
|---|
 | 92 |  S ECPP3=$P(PNP,"^",3),ECPP3=$S(ECPP3="Y":1,ECPP3="N":0,1:"")
 | 
|---|
 | 93 |  S ECPP4=$P(PNP,"^",4),ECPP4=$S(ECPP4="Y":1,ECPP4="N":0,1:"")
 | 
|---|
 | 94 |  S ECPP5=$P(PNP,"^",5),ECPP5=$S(ECPP5="Y":1,ECPP5="N":0,1:"")
 | 
|---|
 | 95 |  S ECPP6=$P(PNP,"^",6),ECPP6=$S(ECPP6="Y":1,ECPP6="N":0,1:"")
 | 
|---|
 | 96 |  S ECPP9=$P(PNP,"^",9),ECPP9=$S(ECPP9="Y":1,ECPP9="N":0,1:"")
 | 
|---|
 | 97 |  S ECPP10=$P(PNP,"^",10),ECPP10=$S(ECPP10="Y":1,ECPP10="N":0,1:"")
 | 
|---|
 | 98 |  S ECPP11=$P(PNP,"^",11),ECPP11=$S(ECPP11="Y":1,ECPP11="N":0,1:"")
 | 
|---|
 | 99 |  S ECPP1A="" I $P(PN,"^",9)["EC" S ECPP1A=$G(^EC(725,+$P(PN,"^",9),0)),ECPP1A=$P(ECPP1A,"^",2)_"  "_$P(ECPP1A,"^")
 | 
|---|
 | 100 |  S ECELIG=$S($G(ECELIG):ECELIG,1:"")
 | 
|---|
 | 101 | NODE ;sets "PCE" node
 | 
|---|
 | 102 |  ;d/t~dfn~hosp loc~inst~dss id~*prov(not filled)~*prov2~*prov3~vol~cpt~dx~ao~rad~env~sc~ecs nat # & name~eligibility~mst~hnc~cv
 | 
|---|
 | 103 |  S PNODE=ECP3_"~"_ECP2_"~"_ECP19_"~"_ECP4_"~"_ECP20_"~~~~"_ECP10_"~"_ECPP1_"~"_ECPP2_"~"_ECPP3_"~"_ECPP4_"~"_ECPP5_"~"_ECPP6_"~"_ECPP1A_"~"_ECELIG_"~"_ECPP9_"~"_ECPP10_"~"_ECPP11
 | 
|---|
 | 104 |  S ^ECH(ECFN,"PCE")=PNODE
 | 
|---|
 | 105 |  ;set "PCE1" node
 | 
|---|
 | 106 |  ;CPT modifier1;CPT modifier 2;CPT modifier 3;...CPT modifier n
 | 
|---|
 | 107 |  I PNMOD'="" S ^ECH(ECFN,"PCE1")=PNMOD
 | 
|---|
 | 108 |  S DA=ECFN,DIE=721,DR="31////"_ECDT D ^DIE K DA,DIE,DR
 | 
|---|
 | 109 |  K ECP2,ECP3,ECP4,ECP10,ECP19,ECP20,ECPP1,ECPP1A,ECPP2,ECPP3,ECPP4,ECPP5,ECPP6,ECPP9,ECPP10,ECPP11,ECREAS,ECPCL,PN,PNP,PNODE,ECELIG,PNMOD
 | 
|---|
 | 110 |  Q
 | 
|---|
 | 111 | CLIN ;check for active associated clinic
 | 
|---|
 | 112 |  S MSG1=1,MSG2=0
 | 
|---|
 | 113 |  D CLIN^ECPCEU
 | 
|---|
 | 114 |  I 'ECPCL D
 | 
|---|
 | 115 |  .W !!,"The clinic ",$S(MSG1:"associated with",1:"you selected for")," this procedure ",$S(MSG2:"has not been entered",1:"is inactive"),"."
 | 
|---|
 | 116 |  .W !,"Workload data cannot be sent to PCE for this procedure with ",!,$S(MSG2:"a missing",1:"an inactive")," clinic."
 | 
|---|
 | 117 |  S (MSG1,MSG2)=0
 | 
|---|
 | 118 |  Q
 | 
|---|
 | 119 |  ;
 | 
|---|
 | 120 |  ;
 | 
|---|
 | 121 | KILLR ;- Kill 'R' (Reason) node
 | 
|---|
 | 122 |  ;
 | 
|---|
 | 123 |  K ^ECH(ECFN,"R")
 | 
|---|
 | 124 |  Q
 | 
|---|
 | 125 |  ;
 | 
|---|
 | 126 |  ;
 | 
|---|
 | 127 | DELNOD ;- Delete 'PCE' and 'Send' nodes
 | 
|---|
 | 128 |  ;
 | 
|---|
 | 129 |  N DA,DIE,DR
 | 
|---|
 | 130 |  ;
 | 
|---|
 | 131 |  ;- Lock node
 | 
|---|
 | 132 |  L +^ECH(ECFN):5 Q:'$T
 | 
|---|
 | 133 |  S DA=ECFN
 | 
|---|
 | 134 |  S DIE="^ECH("
 | 
|---|
 | 135 |  S DR="30////@;31////@;37////@"
 | 
|---|
 | 136 |  ;
 | 
|---|
 | 137 |  ;- Delete contents
 | 
|---|
 | 138 |  D ^DIE
 | 
|---|
 | 139 |  ;
 | 
|---|
 | 140 |  ;- Unlock node
 | 
|---|
 | 141 |  L -^ECH(ECFN)
 | 
|---|
 | 142 |  Q
 | 
|---|