1 | IBDFDE0 ;ALB/AAS - AICS Data Entry, Check out interview; 24-FEB-96
|
---|
2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;**29,36,44**;APR 24, 1997
|
---|
3 | ;
|
---|
4 | % G ^IBDFDE
|
---|
5 | ;
|
---|
6 | CHKOUT(SDOE) ; -- ask check out questions
|
---|
7 | ; -- assumes forms are always for an appointment
|
---|
8 | ; does not require provider, cpt, or diag. to input data
|
---|
9 | ; acts same as input from scanned form.
|
---|
10 | ;
|
---|
11 | S IBQUIT=0
|
---|
12 | W !!,">>> Check out interview..."
|
---|
13 | ;
|
---|
14 | ; -- can't check out future appointments
|
---|
15 | I $E(IBDF("APPT"),1,7)>DT W "not available at this time." G CHKOUTQ
|
---|
16 | ;
|
---|
17 | ; -- get encounter if not already there (won't work unless appt exists)
|
---|
18 | ;I 'SDOE S SDOE=$$GETAPT(DFN,IBDF("APPT"),IBDF("CLINIC"))
|
---|
19 | ;
|
---|
20 | ; -- see if already done, or needs to be done first
|
---|
21 | S X=$$REQ(DFN,IBDF("APPT"),IBDF("CLINIC"),SDOE,$G(IBDCKOUT))
|
---|
22 | I X<1 W $S(X=0:"no questions.",X=-2:"not required",X=-3:"already completed today",1:"already complete.") G CHKOUTQ
|
---|
23 | W "required."
|
---|
24 | ;
|
---|
25 | ; -- ask eligibility/appt type ;not unless asked for
|
---|
26 | ;S ELIG=$$ELAP^SDPCE(DFN,IBDF("APPT"))
|
---|
27 | ;
|
---|
28 | ; -- ask checkout Date
|
---|
29 | S IBDPRE=$G(IBDCO("CO"))
|
---|
30 | S X=$S($G(IBDCO("CO"))="":"NOW",1:$$FMTE^XLFDT(IBDCO("CO")))
|
---|
31 | S IBDCO("CO")=$E($$ASKDT("Checkout Date: ",X,"",IBDF("APPT"),$$FMADD^XLFDT(DT,1)),1,12)
|
---|
32 | I $G(IBDCO("CO"))="" K IBDCO W " Checkout Deleted!" G CHKOUTQ
|
---|
33 | I $G(IBDCO("CO"))<0 K:IBDPRE="" IBDCO("CO") W:IBDPRE="" " Checkout Deleted!" S:IBDPRE IBDCO("CO")=IBDPRE S IBQUIT=1 G CHKOUTQ
|
---|
34 | ;
|
---|
35 | ; -- ask classifications
|
---|
36 | I $$SC^SDCO22(DFN,+SDOE)!($D(IBDF("SC"))) S IBDCO("SC")=$$ASKYN("Was treatment for SC Condition",$G(IBDCO("SC")),"D SCCOND^IBDFN4") D
|
---|
37 | .I $G(IBDCO("SC"))="" K IBDCO("SC") W " Deleted!"
|
---|
38 | I $G(IBDCO("SC"))<0 K IBDCO("SC") S IBQUIT=1 G CHKOUTQ
|
---|
39 | ;
|
---|
40 | I $G(IBDCO("SC")) G MST ; if service connected others don't apply
|
---|
41 | ;
|
---|
42 | I $$AO^SDCO22(DFN,+SDOE)!($D(IBDF("AO"))) S IBDCO("AO")=$$ASKYN("Was treatment related to Agent Orange Exposure",$G(IBDCO("AO"))) D
|
---|
43 | .I $G(IBDCO("AO"))="" K IBDCO("AO") W " Deleted!"
|
---|
44 | I $G(IBDCO("AO"))<0 K IBDCO("AO") S IBQUIT=1 G CHKOUTQ
|
---|
45 | ;
|
---|
46 | I $$IR^SDCO22(DFN,+SDOE)!($D(IBDF("IR"))) S IBDCO("IR")=$$ASKYN("Was treatment related to Ionizing Radiation Exposure",$G(IBDCO("IR"))) D
|
---|
47 | .I $G(IBDCO("IR"))="" K IBDCO("IR") W " Deleted!"
|
---|
48 | I $G(IBDCO("IR"))<0 K IBDCO("IR") S IBQUIT=1 G CHKOUTQ
|
---|
49 | ;
|
---|
50 | I $$EC^SDCO22(DFN,+SDOE)!($D(IBDF("EC"))) S IBDCO("EC")=$$ASKYN("Was treatment related to Environmental Contaminant Exposure",$G(IBDCO("EC"))) D
|
---|
51 | .I $G(IBDCO("EC"))="" K IBDCO("EC") W " Deleted!"
|
---|
52 | I $G(IBDCO("EC"))<0 K IBDCO("EC") S IBQUIT=1 G CHKOUTQ
|
---|
53 | ;
|
---|
54 | MST ;- Ask Military Sexual Trauma question (patch IBD*3*36)
|
---|
55 | I $$MST^SDCO22(DFN,+SDOE)!($D(IBDF("MST"))) S IBDCO("MST")=$$ASKYN("Was treatment related to MST (Note: ask provider only)",$G(IBDCO("MST"))) D
|
---|
56 | .I $G(IBDCO("MST"))="" K IBDCO("MST") W " Deleted!"
|
---|
57 | I $G(IBDCO("MST"))<0 K IBDCO("MST") S IBQUIT=1 G CHKOUTQ
|
---|
58 | ;
|
---|
59 | I '$D(IBDCO) W "no questions."
|
---|
60 | CHKOUTQ I IBQUIT W !!,"Required information missing."
|
---|
61 | K IBDPRE,SDFN
|
---|
62 | Q
|
---|
63 | ;
|
---|
64 | ASKYN(QUES,DEFLT,EXHELP) ; -- ask yes/no question
|
---|
65 | N DIR,DIRUT,DUOUT,DTOUT
|
---|
66 | I $G(EXHELP)'="" S DIR("??")="^"_EXHELP
|
---|
67 | S DIR("A")=QUES,DIR(0)="YO",DIR("B")=$S($G(DEFLT):"Yes",1:"No") D ^DIR
|
---|
68 | I $D(DIRUT),Y'="" S Y=-1 ;i y="" user typed "@"
|
---|
69 | I $D(DTOUT)!($D(DUOUT)) S IBQUIT=1,Y=-1
|
---|
70 | Q Y
|
---|
71 | ;
|
---|
72 | ASKDT(QUES,DEFLT,PARAM,EARLY,LATEST,EXHELP) ; -- ask date questions
|
---|
73 | N X,Y,DIR,DIRUT,DTOUT,DUOUT
|
---|
74 | S DIR(0)="DOA^"_$E($G(EARLY),1,7)_":"_$G(LATEST)_":"_$S($G(PARAM)'="":PARAM,1:"AERX")
|
---|
75 | I $G(QUES)'="" S DIR("A")=QUES
|
---|
76 | I $G(DEFLT)'="" S DIR("B")=DEFLT
|
---|
77 | I $L($G(EXHELP)) S DIR("??")="^"_EXHELP
|
---|
78 | S DIR("?")="This response requires an appointment Date and Time"
|
---|
79 | D ^DIR
|
---|
80 | I $D(DIRUT),Y'="" S Y=-1 ;i y="" user typed "@"
|
---|
81 | I $D(DTOUT)!($D(DUOUT)) S IBQUIT=1,Y=-1
|
---|
82 | Q Y
|
---|
83 | ;
|
---|
84 | REQ(DFN,APPT,CLINIC,SDOE,IBDC) ; is checkout interview required for this appt.
|
---|
85 | N IBDY S IBDY=0
|
---|
86 | I $$INP^SDAM2(DFN,APPT)="I" G REQQ ; inpatient appointment
|
---|
87 | I '$$CLINIC^SDAMU(CLINIC) G REQQ ; not a clinic or non-count
|
---|
88 | I $$REQ^SDM1A(APPT)'="CO" G REQQ ; checkout not required
|
---|
89 | I $$EXCL(CLINIC,APPT) S IBDY=-2 G REQQ ; clinic stop codes are exempt
|
---|
90 | I $$COMDT^SDCOU(+SDOE) S IBDY=-1 G REQQ ;process completed
|
---|
91 | I $P($G(IBDC),".")=DT S IBDY=-3 G REQQ ;already checked out today
|
---|
92 | S IBDY=1
|
---|
93 | REQQ K SDFN
|
---|
94 | Q IBDY
|
---|
95 | ;
|
---|
96 | EXCL(CL,DAT) ; -- are clinic stop codes exempt from classifications
|
---|
97 | ; -- 1=yes, 0=no
|
---|
98 | ; original logic from exoe^sdcou2 except uses clinic stops rather
|
---|
99 | ; than outpatient encounter stops
|
---|
100 | ;
|
---|
101 | N SC1,SC2,EXMPT
|
---|
102 | S SC1=$P($G(^SC(CL,0)),"^",7),SC2=$P($G(^SC(CL,0)),"^",18)
|
---|
103 | I $$EX^SDCOU2(SC1,$G(DAT)) D
|
---|
104 | .S EXMPT=1
|
---|
105 | .I SC2,'$$EX^SDCOU2(SC2,$G(DAT)) S EXMPT=0
|
---|
106 | EXCLQ Q +$G(EXMPT)
|
---|
107 | ;
|
---|
108 | WRITE(SDOE,CNT) ; -- print checkout interview
|
---|
109 | W !?3,"Check out interview..."
|
---|
110 | S X=$$REQ(DFN,IBDF("APPT"),IBDF("CLINIC"),SDOE)
|
---|
111 | I X<1 W $S(X=0:"no questions.",1:"already complete.") G WRITEQ
|
---|
112 | W "required."
|
---|
113 | G:$D(IBDCO)'>1 WRITEQ
|
---|
114 | ;D:$G(CNT)="" DISP
|
---|
115 | D:$G(CNT)'="" LIST
|
---|
116 | ;
|
---|
117 | WRITEQ Q
|
---|
118 | ;
|
---|
119 | DISP ; -- display the old way
|
---|
120 | I $D(IBDCO("CO")) W !," Checkout Date: ",$$FMTE^XLFDT(IBDCO("CO"))
|
---|
121 | I $D(IBDCO("SC")) W !," Treatment for SC Condition: ",$S(IBDCO("SC")=1:"YES",1:"NO")
|
---|
122 | I $D(IBDCO("AO")) W !," Agent Orange Exposure: ",$S(IBDCO("AO")=1:"YES",1:"NO")
|
---|
123 | I $D(IBDCO("IR")) W !," Ionizing Radiation Exposure: ",$S(IBDCO("IR")=1:"YES",1:"NO")
|
---|
124 | I $D(IBDCO("EC")) W !," Environmental Contaminants: ",$S(IBDCO("EC")=1:"YES",1:"NO")
|
---|
125 | I $D(IBDCO("MST")) W !," MST: ",$S(IBDCO("MST")=1:"YES",1:"NO")
|
---|
126 | Q
|
---|
127 | ;
|
---|
128 | LIST ; -- display with a list
|
---|
129 | I $D(IBDCO("CO")) S CNT=CNT+1 W !?3,CNT,?7,"Checkout Date ",?31,$$FMTE^XLFDT(IBDCO("CO"))
|
---|
130 | I $D(IBDCO("SC")) S CNT=CNT+1 W !?3,CNT,?7,"SC Condition ",?31,$S(IBDCO("SC")=1:"YES",1:"NO")
|
---|
131 | I $D(IBDCO("AO")) S CNT=CNT+1 W !?3,CNT,?7,"Agent Orange ",?31,$S(IBDCO("AO")=1:"YES",1:"NO")
|
---|
132 | I $D(IBDCO("IR")) S CNT=CNT+1 W !?3,CNT,?7,"Ionizing Radiation ",?31,$S(IBDCO("IR")=1:"YES",1:"NO")
|
---|
133 | I $D(IBDCO("EC")) S CNT=CNT+1 W !?3,CNT,?7,"Env. Contaminants ",?31,$S(IBDCO("EC")=1:"YES",1:"NO")
|
---|
134 | I $D(IBDCO("MST")) S CNT=CNT+1 W !?3,CNT,?7,"MST ",?31,$S(IBDCO("MST")=1:"YES",1:"NO")
|
---|
135 | Q
|
---|