| 1 | IBDF6 ;ALB/CJM - ENCOUNTER FORM - ENTRY FOR BUILDING A FORM ;NOV 16,1992 | 
|---|
| 2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;**10,29,30**;APR 24, 1997 | 
|---|
| 3 | ; | 
|---|
| 4 | FORMLIST ; | 
|---|
| 5 | N IBTKFORM,IBDEVICE,IBAPI,IOVL,IOHL,IOBRC,IOBLC,IOTRC,IOTLC,IBFORM | 
|---|
| 6 | ;IBDEVICE stores parameters related to device for printing forms | 
|---|
| 7 | D DEVICE^IBDFUA(1,.IBDEVICE) | 
|---|
| 8 | S IBTKFORM=0 ;IBTKFORM=1 only for toolkit forms | 
|---|
| 9 | S IBAPI("INDEX")="D IDXFORMS^IBDF6" | 
|---|
| 10 | S IBAPI("SELECT")="D SELECT^IBDF6" | 
|---|
| 11 | N IBFASTXT ;set to 1 for fast exit from system | 
|---|
| 12 | S IBFASTXT=0 | 
|---|
| 13 | K XQORS,VALMEVL,DIR | 
|---|
| 14 | S IBCLINIC="" | 
|---|
| 15 | D CLINIC | 
|---|
| 16 | I IBCLINIC D EN^VALM("IBDF CLINIC FORM LIST") | 
|---|
| 17 | Q | 
|---|
| 18 | ONENTRY ; | 
|---|
| 19 | D IDXFORMS | 
|---|
| 20 | Q | 
|---|
| 21 | ONEXIT ; | 
|---|
| 22 | D KILL^%ZISS | 
|---|
| 23 | K ^TMP("IB",$J),^TMP("IBDF",$J),IBCLINIC,VALMY,IBQUIT,VALMBCK,X,Y,I,DA,D0 | 
|---|
| 24 | Q | 
|---|
| 25 | EDITFORM ;allows user to select a form, then displays it for edit | 
|---|
| 26 | N IBFORM,ARY,DFN,IBAPPT,RTNLIST,IBPRINT | 
|---|
| 27 | S ARY="^TMP(""IBDF"",$J,""TEMPORARY CLINIC LIST"")" | 
|---|
| 28 | ; | 
|---|
| 29 | K @ARY | 
|---|
| 30 | S VALMBCK="" | 
|---|
| 31 | I $G(IBAPI("SELECT"))'="" X IBAPI("SELECT") | 
|---|
| 32 | I IBFORM D CLINICS^IBDFU4(IBFORM,ARY) I $G(@ARY@(0))>1 W !,"The form is in use by other clinics!" D LIST^IBDFU4(ARY,4) S DIR(0)="Y",DIR("A")="Still want to edit",DIR("B")="N" D ^DIR K DIR I $D(DIRUT)!(Y=0) S IBFORM="" | 
|---|
| 33 | K ARY | 
|---|
| 34 | I IBFORM,'$$LOCKFRM2^IBDFU7(IBFORM) D LOCKMSG2^IBDFU7(IBFORM) S IBFORM="" | 
|---|
| 35 | I IBFORM D PRNTPRMS^IBDFU1C(.IBPRINT,0,1,0,1),UNCMPL^IBDF19(IBFORM,0),EN^VALM("IBDF DISPLAY FORM FOR EDIT"),UNCMPL^IBDF19(IBFORM,0),FREEFRM2^IBDFU7(IBFORM) | 
|---|
| 36 | S VALMBCK="R" | 
|---|
| 37 | Q | 
|---|
| 38 | ; | 
|---|
| 39 | CLINIC ; | 
|---|
| 40 | N DIR,DIC,DIE,DR,DA | 
|---|
| 41 | S DIR(0)="409.95,.01",DIR("A")="EDIT FORMS FOR WHICH CLINIC? " | 
|---|
| 42 | D ^DIR | 
|---|
| 43 | K DIR | 
|---|
| 44 | I $D(DIRUT)!(+Y<0) Q | 
|---|
| 45 | S IBCLINIC=+Y | 
|---|
| 46 | Q | 
|---|
| 47 | ; | 
|---|
| 48 | IDXFORMS ;build an array of forms used by IBCLINIC for the list processor | 
|---|
| 49 | N FORM,SETUP,NODE,SUB,SUBREC,USE,ID | 
|---|
| 50 | K @VALMAR | 
|---|
| 51 | S SETUP="",VALMCNT=0,ID=0 | 
|---|
| 52 | S SETUP=$O(^SD(409.95,"B",IBCLINIC,"")) Q:'SETUP | 
|---|
| 53 | S NODE=$G(^SD(409.95,SETUP,0)) Q:NODE="" | 
|---|
| 54 | F SUB=2,6,8,9,3,4,5,7 S FORM=$P(NODE,"^",SUB) I FORM D | 
|---|
| 55 | .I $D(^IBE(357,FORM,0)) D | 
|---|
| 56 | ..S USE="" | 
|---|
| 57 | ..D ENTRY | 
|---|
| 58 | Q | 
|---|
| 59 | ENTRY ;adds an entry to the array | 
|---|
| 60 | S USE=USE_$S(SUB=2:"Basic Encounter Form",SUB=3:"Supplemental Form - Established Patients",SUB=4:"Supplemental Form - New Patients",SUB=5:"Form To Print With No Patient Data",1:"") | 
|---|
| 61 | S:USE="" USE=USE_$S(SUB=7:"For Future Use",1:"Supplemental Form - All Patients") | 
|---|
| 62 | S ID=ID+1,VALMCNT=VALMCNT+1,@VALMAR@(VALMCNT,0)=$$DISPLAY1(FORM,USE,ID),@VALMAR@("IDX",VALMCNT,ID)=FORM D FLDCTRL^VALM10(VALMCNT) ;set video for ID column | 
|---|
| 63 | S VALMCNT=VALMCNT+1,@VALMAR@(VALMCNT,0)=$$DISPLAY2(FORM),@VALMAR@("IDX",VALMCNT,ID)=FORM_"^"_$S(SUB=2:.02,SUB=3:.03,SUB=4:.04,SUB=5:.05,SUB=6:.06,SUB=7:.07,SUB=8:.08,SUB=9:.09,1:0) | 
|---|
| 64 | Q | 
|---|
| 65 | HDR ; | 
|---|
| 66 | S VALMHDR(1)="FORMS CURRENTLY USED BY '"_$$CLNCNAME_"' HOSPITAL LOCATION" | 
|---|
| 67 | Q | 
|---|
| 68 | CLNCNAME() ; | 
|---|
| 69 | Q $P($G(^SC(IBCLINIC,0)),"^",1) | 
|---|
| 70 | DISPLAY1(FORM,USE,ID) ; | 
|---|
| 71 | N NODE,NAME,RET | 
|---|
| 72 | S RET=$J(ID,3)_$$SP(2) | 
|---|
| 73 | S NODE=$G(^IBE(357,FORM,0)) | 
|---|
| 74 | S NAME=$P(NODE,"^",1) | 
|---|
| 75 | S RET=RET_$$PR(NAME,30)_$$SP(2)_USE | 
|---|
| 76 | Q RET | 
|---|
| 77 | DISPLAY2(FORM) ; | 
|---|
| 78 | N NODE,DESCR,RET | 
|---|
| 79 | S RET=$$SP(37) | 
|---|
| 80 | S NODE=$G(^IBE(357,FORM,0)) | 
|---|
| 81 | S DESCR=$P(NODE,"^",3) | 
|---|
| 82 | S RET=RET_$E(DESCR,1,80) | 
|---|
| 83 | Q RET | 
|---|
| 84 | PR(STR,LEN) ; pad right | 
|---|
| 85 | Q:'$G(LEN) "" | 
|---|
| 86 | N B S STR=$E($G(STR),1,LEN) | 
|---|
| 87 | S:LEN'=$L(STR) $P(B," ",LEN-$L($G(STR)))=" " | 
|---|
| 88 | Q STR_$G(B) | 
|---|
| 89 | SP(LEN) ; | 
|---|
| 90 | Q:'$G(LEN) | 
|---|
| 91 | N S S $P(S," ",LEN)=" " | 
|---|
| 92 | Q S | 
|---|
| 93 | CHNGCLNC ;allows the user to change the clinic | 
|---|
| 94 | N SAVECLNC S SAVECLNC=IBCLINIC | 
|---|
| 95 | D FULL^VALM1 | 
|---|
| 96 | S VALMBCK="R" | 
|---|
| 97 | D CLINIC I 'IBCLINIC S IBCLINIC=SAVECLNC Q | 
|---|
| 98 | D HDR | 
|---|
| 99 | X IBAPI("INDEX") | 
|---|
| 100 | Q | 
|---|
| 101 | ; | 
|---|
| 102 | SELECT  ; | 
|---|
| 103 | N SEL | 
|---|
| 104 | D EN^VALM2(XQORNOD(0),"S") | 
|---|
| 105 | S SEL=$O(VALMY("")) | 
|---|
| 106 | S IBFORM=$S('SEL:"",1:+$G(@VALMAR@("IDX",2*SEL,SEL))) | 
|---|
| 107 | Q | 
|---|