1 | IBDFDE7 ;ALB/AAS - AICS Manual Data Entry, Entry point for Group Clinics ; 29-APR-96
|
---|
2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;**36,51**;APR 24, 1997
|
---|
3 | ;
|
---|
4 | W !,?4,"** This option is OUT OF ORDER **" QUIT ;Code set Versioning
|
---|
5 | ;
|
---|
6 | % N %,%H,C,I,J,X,Y,ADD,DEL,ASKOTHER,DIR,DIC,DA,CNT,DFN,DIRUT,DUOUT,DTOUT,POP,RTN,FRMDATA,IBDA,IBY,IBQUIT,IBDF,IBDOBJ,IBDPTSTI,IBDPTSTE,IBDPTNM,IBDPTDTI,SEL,IBD,IBDCKOUT
|
---|
7 | N IBDPTDTE,IBDFMNME,IBDFMIEN,IBDFMSTI,IBDFMSTE,IBDFMIDI,IBDCLNME,IBFORM,IBDCLNPH,IBDPID,IBDPTPRI,IBDSEL,IBDPI,IBDCO,PXCA,SDCLST,PXCASTAT,PXKNODA,PXKNODB,IBDREDIT,IBDASK,IBDPRE,IBDX,ANS,CLNAME,CLSETUP,IBDSC,FORM,FORMLST,IBDFDT
|
---|
8 | ;
|
---|
9 | I '$D(DT) D DT^DICRW
|
---|
10 | D HOME^%ZIS
|
---|
11 | W !!,"Data Entry of Encounter Forms for Group Clinics",!
|
---|
12 | ;
|
---|
13 | STRT ; -- ask for Clinic, appt. date/time
|
---|
14 | ; list patients, allow to deselect
|
---|
15 | ; find all forms for appt., then go through 1 at a time
|
---|
16 | ; then send data for each patient
|
---|
17 | ;
|
---|
18 | D END W !
|
---|
19 | S IBQUIT=0
|
---|
20 | S (IBDSC,IBDF("CLINIC"))=$$SELCL^IBDFDE6 G:IBQUIT STRTQ
|
---|
21 | I IBDSC<1 S IBQUIT=1 G STRTQ
|
---|
22 | S CLNAME=$P($G(^SC(+IBDSC,0)),"^")
|
---|
23 | S CLSETUP=$G(^SD(409.95,+$O(^SD(409.95,"B",+IBDSC,0)),0))
|
---|
24 | ;
|
---|
25 | OVER ;
|
---|
26 | W !
|
---|
27 | S IBQUIT=0
|
---|
28 | S IBDFDT=$$SELAPT(.IBDF) G:IBQUIT STRTQ
|
---|
29 | I IBDFDT<0 G STRT
|
---|
30 | S IBDF("APPT")=IBDFDT
|
---|
31 | ;
|
---|
32 | D BLD
|
---|
33 | I '$D(^TMP("IBD-PL",$J,IBDF("CLINIC"))) W !!,"No valid appointments at that Date/Time!",!! G STRTQ
|
---|
34 | ;
|
---|
35 | D HDR^IBDFDE6,LIST^IBDFDE6
|
---|
36 | W !!
|
---|
37 | D EXCLUD
|
---|
38 | I IBQUIT=2 S IBQUIT=0 G STRTQ
|
---|
39 | G:IBQUIT STRTQ
|
---|
40 | ;
|
---|
41 | ; -- get first patient, check form(s)
|
---|
42 | ; do data entry on form and if okay pass data for all patients
|
---|
43 | S IBDSTRT=+$O(^TMP("IBD-PL",$J,IBDF("CLINIC"),0))
|
---|
44 | S NODE=$G(^TMP("IBD-PL",$J,IBDF("CLINIC"),IBDSTRT))
|
---|
45 | S (DFN,IBDFN)=+NODE
|
---|
46 | S FORMLST=$$FINDID^IBDF18C(DFN,IBDF("APPT"),"",1)
|
---|
47 | I FORMLST="" W !,"No forms Printed for first Patient" D ANYWAY^IBDFDE6
|
---|
48 | I FORMLST="" G OVERQ
|
---|
49 | S IBDF("SAVE")=1 ;save ibdsel(array)
|
---|
50 | F IBDX=1:1 S IBDF("FORM")=$P(FORMLST,"^",IBDX) Q:IBDF("FORM")="" I IBDF("FORM")'="" D EN^IBDFDE D
|
---|
51 | .I $G(IBDF("NOTHING"))!(IBQUIT) W !! Q
|
---|
52 | .D ALLPTS K IBDSEL,IBDPI Q:IBQUIT
|
---|
53 | K IBDF("SAVE")
|
---|
54 | ;
|
---|
55 | OVERQ G OVER
|
---|
56 | ;
|
---|
57 | STRTQ D PAUSE^IBDFDE G:IBQUIT END
|
---|
58 | G STRT
|
---|
59 | ;
|
---|
60 | ALLPTS ; -- loop through all patients, merge ibdf=^tmp("ibd-save),
|
---|
61 | ; reset dfn, pass data to ibdfrpc4
|
---|
62 | N PARAM,FORMID,IBX,NODE
|
---|
63 | S FORMID=$P(^IBD(357.96,+IBDF("FORM"),0),"^",4)
|
---|
64 | S PARAM=$P($G(^IBD(357.09,1,0)),"^",7)
|
---|
65 | I $G(^TMP("IBD-SAVED",$J,"DYNAMIC")) W !!,"Form contains patient specific information, Not available for this option!",!! G ALLPTQ
|
---|
66 | S IBDA=IBDSTRT
|
---|
67 | F S IBDA=$O(^TMP("IBD-PL",$J,IBDF("CLINIC"),IBDA)) Q:IBDA=""!(IBQUIT) D
|
---|
68 | .S IBX=IBDA
|
---|
69 | .S NODE=$G(^TMP("IBD-PL",$J,IBDF("CLINIC"),IBX))
|
---|
70 | .M IBDF=^TMP("IBD-SAVED",$J)
|
---|
71 | .S (DFN,IBDF("DFN"))=+NODE
|
---|
72 | .S IBDF("SDOE")=$P(NODE,"^",22)
|
---|
73 | .S IBDF("FORM")=+$$FID^IBDF18C(DFN,IBDF("APPT"),1,FORMID,IBDF("CLINIC"))
|
---|
74 | .W !!,"Check out interview for: ",$P($G(^DPT(DFN,0)),"^")
|
---|
75 | .K IBDCO,IBDF("AO"),IBDF("SC"),IBDF("IR"),IBDF("EC"),IBDF("MST")
|
---|
76 | .D CHKOUT^IBDFDE0(IBDF("SDOE"))
|
---|
77 | .M IBDF=IBDCO
|
---|
78 | .D SEND^IBDFRPC4(.RESULT,.IBDF)
|
---|
79 | .I PARAM=3 D DISP^IBDFDE1
|
---|
80 | .I PARAM,$D(PXCA("ERROR"))!($D(PXCA("WARNING"))) D ERR^IBDFDE1
|
---|
81 | .I $P($G(^IBD(357.09,1,0)),"^",6) D MAKAPPT^IBDFDE1
|
---|
82 | ;
|
---|
83 | K ^TMP("IBD-SAVED",$J)
|
---|
84 | ALLPTQ Q
|
---|
85 | ;
|
---|
86 | SELAPT(IBDF) ; -- select appointment date/time for a clinic
|
---|
87 | N DIR,DA,DR,DIC,DIE,X,Y,ANS,DIRUT
|
---|
88 | S ANS=-1
|
---|
89 | S DIR(0)="DO^:NOW:AEXRT^D SCRN^IBDFDE7",DIR("A")="Appointment Date/Time"
|
---|
90 | S DIR("?")="Enter the date/time for the clinic that you wish to enter encounter forms for. Appointments must be present to enter the date time."
|
---|
91 | S DIR("??")="^D APDT^IBDFDE7"
|
---|
92 | D ^DIR K DIR
|
---|
93 | I $D(DIRUT) G SELAPQ
|
---|
94 | S ANS=+Y
|
---|
95 | SELAPQ Q ANS
|
---|
96 | ;
|
---|
97 | SCRN ; -- input transform logic for selecting an appointment date/time
|
---|
98 | I $G(IBDF("CLINIC"))="" K X
|
---|
99 | I '$D(^SC(IBDF("CLINIC"),"S",Y,1)) W $C(7),"?? No appointments that time." K X
|
---|
100 | Q
|
---|
101 | ;
|
---|
102 | EXCLUD ; -- select patient(s) to process
|
---|
103 | S RESULT=""
|
---|
104 | S DIR("?")="Enter the number of the patient to exclude."
|
---|
105 | S DIR("??")="^D LIST^IBDFDE6"
|
---|
106 | S DIR(0)="FO^1:30",DIR("A")="Exclude Patient"
|
---|
107 | I RESULT'="" S DIR("A")="Exclude Another Patient"
|
---|
108 | D ^DIR K DIR
|
---|
109 | I $D(DTOUT)!($D(DUOUT)) S IBQUIT=1 G EXCLUDQ
|
---|
110 | S ANS=Y
|
---|
111 | I ANS="" G EXCLUDQ
|
---|
112 | I ANS'=+ANS W !,"You must select a number from the list."
|
---|
113 | I ANS=+ANS,$D(^TMP("IBD-PL",$J,IBDF("CLINIC"),ANS)) D
|
---|
114 | .S RESULT=^TMP("IBD-PL",$J,IBDF("CLINIC"),ANS)
|
---|
115 | .K ^TMP("IBD-PL",$J,IBDF("CLINIC"),ANS),^TMP("IBD-PLN",$J,IBDF("CLINIC"),$P($G(^DPT(+RESULT,0)),"^"))
|
---|
116 | .W " ",$P($G(^DPT(+RESULT,0)),"^")," ","Excluded!"
|
---|
117 | ;
|
---|
118 | I '$D(^TMP("IBD-PL",$J,IBDF("CLINIC"))) W !!,"No patients left" S IBQUIT=2 G EXCLUDQ
|
---|
119 | ;
|
---|
120 | G EXCLUD
|
---|
121 | EXCLUDQ Q
|
---|
122 | ;
|
---|
123 | BLD ; -- Find all appointments for a date
|
---|
124 | K ^TMP("IBD-PL",$J),^TMP("IBD-PLN",$J)
|
---|
125 | N SC,IBD,IBD1
|
---|
126 | S IBD=IBDFDT,SC=IBDF("CLINIC"),CNT=0
|
---|
127 | S IBD1=0 F S IBD1=$O(^SC(SC,"S",IBD,1,IBD1)) Q:'IBD1 D
|
---|
128 | .S NODE=$G(^SC(SC,"S",IBD,1,IBD1,0))
|
---|
129 | .S SNODE=$G(^DPT(+NODE,"S",IBD,0))
|
---|
130 | .S X=$P(SNODE,"^",2)
|
---|
131 | .I X'="","CNAPCA"[X Q ;inpatient appointments are okay
|
---|
132 | .S (DFN,IBDF("DFN"))=+NODE
|
---|
133 | .S CNT=CNT+1
|
---|
134 | .S ^TMP("IBD-PL",$J,SC,CNT)=DFN_"^"_IBD_"^"_SNODE
|
---|
135 | .S ^TMP("IBD-PLN",$J,SC,$P(^DPT(DFN,0),"^"))=DFN_"^"_IBD_"^"_SNODE
|
---|
136 | Q
|
---|
137 | ;
|
---|
138 | LIST ; -- print list of patients
|
---|
139 | N IBD,IBJ,FORM,STATUS
|
---|
140 | S IBD=0 F S IBD=$O(^TMP("IBD-PL",$J,IBDF("CLINIC"),IBD)) Q:'IBD D
|
---|
141 | .S DFN=+$G(^TMP("IBD-PL",$J,IBDF("CLINIC"),IBD)),APPT=$P($G(^(IBD)),"^",2),SNODE=$P($G(^(IBD)),"^",3,99)
|
---|
142 | .S FORM=+$$FINDID^IBDF18C(DFN,APPT,"",1),STATUS="NO FORM PRINTED"
|
---|
143 | .I FORM S Y=$P($G(^IBD(357.96,+FORM,0)),"^",11),C=$P(^DD(357.96,.11,0),"^",2) D Y^DIQ S STATUS=Y
|
---|
144 | .W !?2,IBD,?5,$E($P(^DPT(DFN,0),"^"),1,20),?29,$P($G(^DPT(DFN,.36)),"^",3),?43,$$FMTE^XLFDT(+APPT),?64,$E($G(STATUS),1,16)
|
---|
145 | Q
|
---|
146 | ;
|
---|
147 | APDT ; -- list last 30 days appointment dates in clinic
|
---|
148 | S (X,Y)=$$FMADD^XLFDT(DT,-60),CNT=0
|
---|
149 | F S X=$O(^SC(IBDF("CLINIC"),"S",X)) Q:'X!(X>DT) D
|
---|
150 | .S Y=X,CNT=CNT+1
|
---|
151 | .I CNT=1 W !!,"The following are valid Appointment date/times in the past 60 days:"
|
---|
152 | .W:(CNT#3=1) !,?3,$$FMTE^XLFDT(Y)
|
---|
153 | .W:(CNT#3=2) ?30,$$FMTE^XLFDT(Y)
|
---|
154 | .W:(CNT#3=0) ?60,$$FMTE^XLFDT(Y)
|
---|
155 | Q
|
---|
156 | ;
|
---|
157 | HDR ; -- print Clinic header
|
---|
158 | W @IOF
|
---|
159 | W !," Clinic: ",$E(CLNAME,1,25) W ?40," Date: ",$$FMTE^XLFDT(IBDFDT)
|
---|
160 | S FORM=$P(CLSETUP,"^",2),IBDFMNME=$P($G(^IBE(357,+FORM,0)),"^")
|
---|
161 | W !," Basic Form: ",$E(IBDFMNME,1,25) ;W ?40,"Form Status: ",$E(IBDFMSTE,1,25)
|
---|
162 | W !,$TR($J(" ",IOM)," ","=")
|
---|
163 | Q
|
---|
164 | ;
|
---|
165 | END K I,J,X,Y,DA,DR,DIC,DIE,DIR,DTOUT,DUOUT,DIRUT,IBDSEL,CHOICE,TEXT,TEXTU,RESULT,IBDPI,IBDCO,IBDF,IBDA,SDFN
|
---|
166 | K ^TMP("IBD-PL",$J),^TMP("IBD-PLN",$J),^TMP("IBD-SAVED",$J),^TMP("IBD-MORE",$J),^TMP("IBD-PLCHK",$J),^TMP("IBD-PL4",$J),^TMP("IBD-PLB",$J)
|
---|
167 | K ^TMP("IBD-ASK",$J),^TMP("IBD-LCODE",$J),^TMP("IBD-LST",$J),^TMP("IBD-LTEXT",$J),^TMP("IBD-OBJ",$J)
|
---|
168 | Q
|
---|