| 1 | IBDFDEA ;ALB/AAS - AICS Data Entry API ; 19-JUN-96 | 
|---|
| 2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;;APR 24, 1997 | 
|---|
| 3 | ; | 
|---|
| 4 | ; | 
|---|
| 5 | EN1(PXCA,IBDF) ; -- Procedure | 
|---|
| 6 | ; -- supported reference to process encounter form data. | 
|---|
| 7 | ;    Packages that know patient, visit date/time, and clinic | 
|---|
| 8 | ;    can call this api to use the AICS data entry system to prompt | 
|---|
| 9 | ;    users for encounter data and subsequently store this data | 
|---|
| 10 | ;    using the PCE device interface (this is done automatically using | 
|---|
| 11 | ;    the aics parameters). | 
|---|
| 12 | ;    D EN1^IBDFDEA(.RESULTS,.IBDF) | 
|---|
| 13 | ; | 
|---|
| 14 | ; -- Input:  PXCA, called by reference, the results of processing | 
|---|
| 15 | ;            are returned in this array.  See PCE device inteface | 
|---|
| 16 | ;            manual for description of data nodes | 
|---|
| 17 | ;            IBDF, called by reference | 
|---|
| 18 | ;            IBDF("APPT")   :=  Appointment Date Time (required) | 
|---|
| 19 | ;            IBDF("DFN")    :=  pointer to patient file (required) | 
|---|
| 20 | ;            IBDF("CLINIC") :=  pointer to hospital location file (44) | 
|---|
| 21 | ;                               (optional) if clinic not defined and no | 
|---|
| 22 | ;                               form printed, no data entry allowed | 
|---|
| 23 | ;            IBDF("NOAPPT") :=  (optional) if AICS parameters allow | 
|---|
| 24 | ;                               making follow up appointments, setting | 
|---|
| 25 | ;                               this to any non-zero value will suppress | 
|---|
| 26 | ;                               the ability to add followup appointments | 
|---|
| 27 | ;          IBDF("PROVIDER") :=  (optional) if defined, will be used as | 
|---|
| 28 | ;                               primary provider for data entry, use | 
|---|
| 29 | ;                               for provider data entry options | 
|---|
| 30 | ; | 
|---|
| 31 | N %,%H,C,I,J,X,Y,ADD,DEL,ASKOTHER,DIR,DIC,DA,CNT,DFN,DIRUT,DUOUT,DTOUT,POP,RTN,FRMDATA,IBY,IBQUIT,IBDOBJ,IBDPTSTI,IBDPTSTE,IBDPTNM,IBDPTDTI,SEL | 
|---|
| 32 | N IBDPTDTE,IBDFMNME,IBDFMIEN,IBDFMSTI,IBDFMSTE,IBDFMIDI,IBDCLNME,IBFORM,IBDCLNPH,IBDPID,IBDPTPRI,IBDSEL,IBDPI,IBDCO,SDCLST,PXCASTAT,PXKNODA,PXKNODB,IBDREDIT,IBDASK,IBDPRE,IBDOK | 
|---|
| 33 | N ANS1,AUPNDAYS,AUPNDOB,AUPNDOD,AUPNPAT,AUPNSEX,FORMLST | 
|---|
| 34 | ; | 
|---|
| 35 | I '$D(IOF) D HOME^%ZIS | 
|---|
| 36 | G:'$G(IBDF("DFN")) EN1Q S DFN=IBDF("DFN") | 
|---|
| 37 | G:'$G(IBDF("APPT")) EN1Q | 
|---|
| 38 | S IBQUIT=0 | 
|---|
| 39 | ; | 
|---|
| 40 | ; -- if no form create entry | 
|---|
| 41 | S FORMLST=$$FINDID^IBDF18C(DFN,IBDF("APPT"),"",1) | 
|---|
| 42 | I FORMLST="",$G(IBDF("CLINIC")) D ANYWAY^IBDFDE6 | 
|---|
| 43 | ; | 
|---|
| 44 | G:IBQUIT EN1Q | 
|---|
| 45 | ; | 
|---|
| 46 | I FORMLST F IBDX=1:1 S IBDF("FORM")=$P(FORMLST,"^",IBDX) Q:IBDF("FORM")=""  I IBDF("FORM")'="" D EN^IBDFDE K IBDSEL,IBDPI Q:IBQUIT | 
|---|
| 47 | ; | 
|---|
| 48 | EN1Q Q | 
|---|
| 49 | ; | 
|---|
| 50 | SCANFRM(X) ; is entry scannable | 
|---|
| 51 | Q +$P($G(^IBE(357,+$P($G(^IBD(357.95,+$P($G(^IBD(357.96,X,0)),"^",4),0)),"^",21),0)),"^",12) | 
|---|
| 52 | ; | 
|---|
| 53 | DELFT ; -- Delete forms Tracking Entry | 
|---|
| 54 | N I,J,IBD,DIR,DIRUT,VALMY,IBDF,IBDNODE,DFN,APPT,IBX,CLN,IBQUIT,FORMID | 
|---|
| 55 | D EN^VALM2($G(XQORNOD(0))) | 
|---|
| 56 | I $D(VALMY) D FULL^VALM1 S IBD=0 F  S IBD=$O(VALMY(IBD)) Q:'IBD!$D(DIRUT)  D | 
|---|
| 57 | .S IBDF=$P($G(^TMP("FRMIDX",$J,+IBD)),"^",2) | 
|---|
| 58 | .S IBDNODE=$G(^IBD(357.96,+IBDF,0)) I IBDNODE="" W !,"No Form Tracking record associated with entry #",IBD H 2 Q | 
|---|
| 59 | .I $D(^XUSEC("IBD MANAGER",DUZ)) D | 
|---|
| 60 | ..S IBX=$P(IBDNODE,"^",11) I IBX>1,IBX<20 W !!,"***** Status indicates action has been taken on this entry #"_IBD_" *****" | 
|---|
| 61 | ..W !!?25,"*** Entry #"_IBD_" STATUS: "_$S(IBX=1:"PRINTED",IBX=2:"SCANNED",IBX=3:"SCD/PCE",IBX=4:"SCD w/ER",IBX=5:"DENTRY",IBX=6:"DE to PCE",IBX=7:"DE w/ER",IBX=11:"PEND Pgs",IBX=12:"NO TRANS",20:"AVAIL DE",1:"NOT PRNT")_" ***" | 
|---|
| 62 | .I '$D(^XUSEC("IBD MANAGER",DUZ)) D | 
|---|
| 63 | ..S DFN=$P(IBDNODE,"^",2),APPT=$P(IBDNODE,"^",3),CLN=$P(IBDNODE,"^",10),FORMID=$P(IBDNODE,"^",4) | 
|---|
| 64 | ..I $D(^DPT(DFN,"S",APPT,0)),$P(^DPT(DFN,"S",APPT,0),"^",1)=CLN D  ; !,"Entry #"_IBD_" - Nothing Deleted...Deleting entries only allowed for entries not associated with an appointment." H 2 S IBQUIT=1 Q | 
|---|
| 65 | ...I $D(^IBD(357.95,FORMID,0)),'$P(^IBD(357.95,FORMID,0),"^",2) W !,"Entry #"_IBD_" - Nothing Deleted...This entry is associated with an appointment,  and is the most current version of the form." H 2 S IBQUIT=1 Q | 
|---|
| 66 | ..;I $P(IBDNODE,"^",11)>1,$P(IBDNODE,"^",11)<20 W !,"Status indicates action taken on this entry, deletion not allowed." H 2 Q | 
|---|
| 67 | .I '$D(IBQUIT) W ! S DIR(0)="Y",DIR("B")="NO",DIR("A")="Are You Sure you want to delete entry #"_IBD | 
|---|
| 68 | .I '$D(IBQUIT) D ^DIR I Y'=1 W !,"Entry #",IBD," not Deleted!" H 2 Q | 
|---|
| 69 | .I '$D(IBQUIT) D DP1 | 
|---|
| 70 | .K IBQUIT | 
|---|
| 71 | I '$D(VALMY) G DTQ1 | 
|---|
| 72 | ; | 
|---|
| 73 | DTQ K ^TMP("CNT",$J),^TMP("FRM",$J),^TMP("FTRK",$J),^TMP("STATS",$J),^TMP("FRMIDX",$J),^TMP("STAIDX",$J) | 
|---|
| 74 | D EXIT1^IBDFFT,START^IBDFFT1 | 
|---|
| 75 | DTQ1 S VALMBCK="R" Q | 
|---|
| 76 | ; | 
|---|
| 77 | DP1 ; -- actual deletion of forms tracking entry | 
|---|
| 78 | N DA,DIC,DIK | 
|---|
| 79 | S DA=IBDF,DIK="^IBD(357.96," D ^DIK | 
|---|
| 80 | W !,"Entry ",IBD," Deleted!" | 
|---|
| 81 | Q | 
|---|