| [613] | 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
 | 
|---|