1 | IBDF1B1 ;ALB/CJM - ENCOUNTER FORM PRINT (IBDF1B continued - print encounter forms for selected appts); 3/1/93
|
---|
2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;**3**;APR 24, 1997
|
---|
3 | ;
|
---|
4 | N IBDEVICE,IBQUIT
|
---|
5 | ;
|
---|
6 | K DA,D0,X,Y,I
|
---|
7 | ;
|
---|
8 | ;set the error trap so workspace in ^TMP is erased in case of abnormal termination of the print job
|
---|
9 | S X="ERRORTRP^IBDF1B",@^%ZOSF("TRAP")
|
---|
10 | ;
|
---|
11 | S IBQUIT=0
|
---|
12 | D DEVICE^IBDFUA(0,.IBDEVICE)
|
---|
13 | D:$D(^TMP("IBDF",$J,"D")) ENDV^IBDF1B1B D:$D(^TMP("IBDF",$J,"C")) ENCL^IBDF1B1A
|
---|
14 | K ^TMP("EARL",$J),^TMP("MULT",$J)
|
---|
15 | D ENPT
|
---|
16 | D KPRNTVAR^IBDFUA
|
---|
17 | K ^TMP("IBDF",$J),^TMP("IB",$J),^TMP("EARL",$J),^TMP("MULT",$J),DA,D0,X,Y,I,IBI
|
---|
18 | I $D(ZTQUEUED) S ZTREQ="@"
|
---|
19 | Q
|
---|
20 | ENPT ;print encounter forms for each appt
|
---|
21 | ;input ^TMP( - contains appointment data:
|
---|
22 | ;if IBSRT=1 format is ^TMP("IBDF",$J,"P",division name,clinic name,clinic ien,patient name,dfn,appt)=""
|
---|
23 | ;if IBSRT=2 format is^TMP("IBDF",$J,"P",division name,terminal digits,dfn,appt)=clinic ien
|
---|
24 | ;if IBSRT=3 format is ^TMP("IBDF",$J,"P",division name,clinic name,clinic ien,terminal digits,dfn,appt)=""
|
---|
25 | N DFN,CLNCNAME,IBCLINIC,PNAME,TDIGIT,IBAPPT,IBDIV
|
---|
26 | ;IBCLINIC=ien of clinic
|
---|
27 | ;IBSTRTDV is the division to start from in the case of a reprint
|
---|
28 | ;IBREPRNT is the clinic or terminal digits (1st 4) to start from in case of a reprint
|
---|
29 | ;
|
---|
30 | S IBDIV="" F S IBDIV=$O(^TMP("IBDF",$J,"P",IBDIV)) Q:IBQUIT!(IBDIV="") D:(IBDIV=" ")!(IBSTRTDV']IBDIV)
|
---|
31 | .I IBSRT=2,IBDIV]" " W !,"DIVISION: ",IBDIV,@IOF
|
---|
32 | .D:IBSRT=1 SORT1
|
---|
33 | .D:IBSRT=2 SORT2
|
---|
34 | .D:IBSRT=3 SORT3
|
---|
35 | D:'IBQUIT TRLR
|
---|
36 | Q
|
---|
37 | ;
|
---|
38 | SORT1 ;case of sort by div/clinic/patient
|
---|
39 | S CLNCNAME=""
|
---|
40 | ;check if report was restarted, start is after this clinic
|
---|
41 | I IBREPRNT]"" I ((IBDIV=" ")!(IBDIV=IBSTRTDV)) S CLNCNAME=$E(IBREPRNT,1,$L(IBREPRNT)-1)
|
---|
42 | F S CLNCNAME=$O(^TMP("IBDF",$J,"P",IBDIV,CLNCNAME)) Q:CLNCNAME=""!IBQUIT S IBCLINIC="" F S IBCLINIC=$O(^TMP("IBDF",$J,"P",IBDIV,CLNCNAME,IBCLINIC)) Q:'IBCLINIC!IBQUIT D
|
---|
43 | .D HDRPG($P($G(^SC(IBCLINIC,0)),"^"),IBDIV)
|
---|
44 | .S PNAME="" F S PNAME=$O(^TMP("IBDF",$J,"P",IBDIV,CLNCNAME,IBCLINIC,PNAME)) Q:PNAME=""!IBQUIT S DFN="" F S DFN=$O(^TMP("IBDF",$J,"P",IBDIV,CLNCNAME,IBCLINIC,PNAME,DFN)) Q:'DFN!IBQUIT D
|
---|
45 | ..S IBAPPT="" F S IBAPPT=$O(^TMP("IBDF",$J,"P",IBDIV,CLNCNAME,IBCLINIC,PNAME,DFN,IBAPPT)) Q:'(+IBAPPT)!IBQUIT D APPT($G(IBDIV),$G(CLNCNAME),$G(IBCLINIC),$G(PNAME),$G(DFN),$G(IBAPPT))
|
---|
46 | Q
|
---|
47 | SORT2 ;case of sort by div/terminal digit
|
---|
48 | S TDIGIT=""
|
---|
49 | ;check if report was restarted, start is after this terminal digit
|
---|
50 | I IBREPRNT]"" I ((IBDIV=" ")!(IBDIV=IBSTRTDV)) S TDIGIT=IBREPRNT
|
---|
51 | F S TDIGIT=$O(^TMP("IBDF",$J,"P",IBDIV,TDIGIT)) Q:TDIGIT=""!IBQUIT D
|
---|
52 | .S DFN="" F S DFN=$O(^TMP("IBDF",$J,"P",IBDIV,TDIGIT,DFN)) Q:'DFN!IBQUIT D
|
---|
53 | ..S IBAPPT="" F S IBAPPT=$O(^TMP("IBDF",$J,"P",IBDIV,TDIGIT,DFN,IBAPPT)) Q:'+IBAPPT!IBQUIT D
|
---|
54 | ...S IBCLINIC=$G(^TMP("IBDF",$J,"P",IBDIV,TDIGIT,DFN,IBAPPT)) Q:'IBCLINIC!IBQUIT D APPT($G(IBDIV),$G(CLNCNAME),$G(IBCLINIC),$G(PNAME),$G(DFN),$G(IBAPPT),$G(TDIGIT))
|
---|
55 | Q
|
---|
56 | SORT3 ;case of sort by div/clinic/terminal digits
|
---|
57 | S CLNCNAME=""
|
---|
58 | ;check if report was restarted, start is after this CLINIC
|
---|
59 | I IBREPRNT]"" I ((IBDIV=" ")!(IBDIV=IBSTRTDV)) S CLNCNAME=$E(IBREPRNT,1,$L(IBREPRNT)-1)
|
---|
60 | F S CLNCNAME=$O(^TMP("IBDF",$J,"P",IBDIV,CLNCNAME)) Q:CLNCNAME=""!IBQUIT S IBCLINIC="" F S IBCLINIC=$O(^TMP("IBDF",$J,"P",IBDIV,CLNCNAME,IBCLINIC)) Q:'IBCLINIC!IBQUIT D
|
---|
61 | .D HDRPG($P($G(^SC(IBCLINIC,0)),"^"),IBDIV)
|
---|
62 | .S TDIGIT="" F S TDIGIT=$O(^TMP("IBDF",$J,"P",IBDIV,CLNCNAME,IBCLINIC,TDIGIT)) Q:TDIGIT=""!IBQUIT S DFN="" F S DFN=$O(^TMP("IBDF",$J,"P",IBDIV,CLNCNAME,IBCLINIC,TDIGIT,DFN)) Q:'DFN!IBQUIT D
|
---|
63 | ..S IBAPPT="" F S IBAPPT=$O(^TMP("IBDF",$J,"P",IBDIV,CLNCNAME,IBCLINIC,TDIGIT,DFN,IBAPPT)) Q:'(+IBAPPT)!IBQUIT D APPT($G(IBDIV),$G(CLNCNAME),$G(IBCLINIC),$G(PNAME),$G(DFN),$G(IBAPPT),$G(TDIGIT))
|
---|
64 | Q
|
---|
65 | ;
|
---|
66 | APPT(IBDIV,CLNCNAME,IBCLINIC,PNAME,DFN,IBAPPT,TDIGIT) ;print everything for single appt
|
---|
67 | ;input - DFN,IBAPPT,IBCLINIC
|
---|
68 | I $$S^%ZTLOAD S (ZTSTOP,IBQUIT)=1 W !,"TASK STOPPED AT USER'S REQUEST" Q
|
---|
69 | D PRNTFRMS^IBDF1B2
|
---|
70 | D PRNTOTHR^IBDF1B5(IBCLINIC,IBAPPT,DFN)
|
---|
71 | I $D(^DPT(DFN,"S",IBAPPT,0)) S $P(^DPT(DFN,"S",IBAPPT,0),"^",21)=1 S:IBADDONS $P(^DPT(DFN,"S",IBAPPT,0),"^",22)=1
|
---|
72 | Q
|
---|
73 | ;
|
---|
74 | HDRPG(CLINIC,IBDIV) ;print a header page for clinic
|
---|
75 | N LN
|
---|
76 | S LN="BEGINNING TO PRINT ENCOUNTER FORMS FOR "_CLINIC_$S(IBDIV'=" ":" IN "_IBDIV,1:"")_" on "_$E(IBDT,4,5)_"/"_$E(IBDT,6,7)_"/"_$E(IBDT,2,3)
|
---|
77 | I $Y W @IOF
|
---|
78 | W !!!!!,?((IOM-$L(LN))\2),LN
|
---|
79 | W @IOF
|
---|
80 | W !!
|
---|
81 | Q
|
---|
82 | TRLR ;prints a trailer page
|
---|
83 | N LN
|
---|
84 | S LN="PRINTING OF ENCOUNTER FORMS IS COMPLETE"_" for "_$E(IBDT,4,5)_"/"_$E(IBDT,6,7)_"/"_$E(IBDT,2,3)
|
---|
85 | W !!!!!,?((IOM-$L(LN))\2),LN
|
---|
86 | W @IOF
|
---|
87 | Q
|
---|
88 | EARLIEST(DFN,APPT) ;determines if APPT is the earliest appt on the list for DFN
|
---|
89 | D GETLIST^IBDF1B1A(DFN,IBDT,DIVISION)
|
---|
90 | I APPT=$O(^TMP("IBDF",$J,"APPT LIST",DFN,""))
|
---|
91 | Q $T
|
---|