1 | DVBADXFR ;ALB/GTS-AMIE 7131 DIVISIONAL TRANSFER RTN ; 12/6/94 2:00 PM
|
---|
2 | ;;2.7;AMIE;;Apr 10, 1995
|
---|
3 | ;
|
---|
4 | MAIN ;**Loop to select and update 7131 report divisions
|
---|
5 | F DO I $D(DTOUT)!($D(DUOUT)!($D(DVBAOUT))) Q ;**QUIT top 'For' loop
|
---|
6 | .D HOME^%ZIS
|
---|
7 | .W @IOF
|
---|
8 | .W !!,?5,"7131 Divisional Transfer",!!
|
---|
9 | .S REQDA=$$SEL7131^DVBAUTL7()
|
---|
10 | .S:+REQDA'>0 DVBAOUT=""
|
---|
11 | .I +REQDA>0 DO
|
---|
12 | ..D INITIAL,REQVARS
|
---|
13 | ..D INITRPT^DVBAUTL7(REQDA)
|
---|
14 | ..K DTOUT,DUOUT,DVBAOUT
|
---|
15 | ..F DO I $D(DTOUT)!($D(DUOUT)!($D(DVBAOUT))) Q ;**QUIT 'For' loop
|
---|
16 | ...K NODIV
|
---|
17 | ...D DRAW
|
---|
18 | ...D READ I $D(DTOUT)!($D(DUOUT)!($D(DVBAOUT))) Q ;**QUIT 'For' loop
|
---|
19 | ...D DIVSEL I $D(DTOUT)!($D(DUOUT)!($D(DVBAOUT))) Q ;**QUIT 'For' loop
|
---|
20 | ...D:'$D(NODIV) ADJ
|
---|
21 | ..I '$D(DTOUT)&('$D(DUOUT)) D FILE^DVBAUTL7
|
---|
22 | ..D EXITLP
|
---|
23 | K DVBAOUT,REQDA,DA,DIE,DIR,DR,DTOUT,DUOUT
|
---|
24 | W @IOF
|
---|
25 | Q
|
---|
26 | ;
|
---|
27 | EXITLP K A,DA,DIE,DIR,DR,DTOUT,DUOUT,DVBADSCH,DVBAER,DVBAHD21,DVBALN,DVBAOUT
|
---|
28 | K FLDDIV,FLDDTE,REQDIV,DVBARPT,DVBATDT,DVBATITL,DVBAX,X,Z,DVBAP,DVBAO
|
---|
29 | K REQDTE,DVBARPT,REQDA,DVBCSSNO,SSN,HNAME,PNAM,DVBREQDT,DFN,RPTVAR
|
---|
30 | K NDIVIEN,NDIVNAME,CNUM,NODIV
|
---|
31 | Q
|
---|
32 | ;
|
---|
33 | INITIAL ;**initialize general variables
|
---|
34 | S $P(DVBALN,"-",80)=""
|
---|
35 | S DVBATITL="7131 Divisional Transfer"
|
---|
36 | S X="NOW",%DT="ST"
|
---|
37 | D ^%DT
|
---|
38 | X ^DD("DD")
|
---|
39 | S DVBATDT=Y
|
---|
40 | S HNAME=$$SITE^DVBCUTL4()
|
---|
41 | K X,Y,%DT
|
---|
42 | Q
|
---|
43 | ;
|
---|
44 | REQVARS ;**Set variables unique to 7131
|
---|
45 | S DVBREQDT=$P(^DVB(396,REQDA,0),U,4)
|
---|
46 | I $P(^DVB(396,REQDA,2),U,10)="L" D ACT
|
---|
47 | I $P(^DVB(396,REQDA,2),U,10)="A" D ADM
|
---|
48 | S DFN=$P(^DVB(396,REQDA,0),U,1)
|
---|
49 | S PNAM=$P(^DPT(DFN,0),U,1),SSN=$P(^DPT(+DFN,0),U,9)
|
---|
50 | S CNUM=$S($D(^DPT(+DFN,.31)):$P(^(.31),U,3),1:"Unknown")
|
---|
51 | D SSNOUT^DVBCUTIL
|
---|
52 | S SSN=DVBCSSNO
|
---|
53 | Q
|
---|
54 | ;
|
---|
55 | ADM ;**Set up admission date and discharge variables
|
---|
56 | S Y=DVBREQDT
|
---|
57 | D DD^%DT
|
---|
58 | S DVBAHD21="Admission Date: "_Y
|
---|
59 | K Y
|
---|
60 | Q
|
---|
61 | ;
|
---|
62 | ACT ;**Set up activity date variable
|
---|
63 | S Y=DVBREQDT
|
---|
64 | D DD^%DT
|
---|
65 | S DVBAHD21="Activity Date: "_Y
|
---|
66 | K Y
|
---|
67 | Q
|
---|
68 | ;
|
---|
69 | DRAW ;** Output Division screen
|
---|
70 | I IOST?1"C-".E W @IOF
|
---|
71 | W "Information Request Form"
|
---|
72 | W ?35,HNAME
|
---|
73 | W ?59,DVBATDT
|
---|
74 | W !,DVBALN
|
---|
75 | W !,"Patient: "
|
---|
76 | W PNAM
|
---|
77 | W ?54,"SSN: "
|
---|
78 | W SSN
|
---|
79 | W !,"Claim #: ",CNUM,!
|
---|
80 | W DVBAHD21
|
---|
81 | W !!,?9,"Report",?37,"Selected",?48,"Status",?58,"Division"
|
---|
82 | W !,DVBALN
|
---|
83 | F DVBAX=0:0 S DVBAX=$O(DVBARPT(DVBAX)) Q:'DVBAX D DRAW1
|
---|
84 | W !,DVBALN
|
---|
85 | Q
|
---|
86 | ;
|
---|
87 | DRAW1 ;** Output a report to the screen
|
---|
88 | W !,DVBAX
|
---|
89 | W ?3,$P(DVBARPT(DVBAX),U,1)
|
---|
90 | W ?40,$S($P(DVBARPT(DVBAX),U,2)["Y":"YES",1:"NO")
|
---|
91 | W ?48,$S($P(DVBARPT(DVBAX),U,3)="C":"Completed",$P(DVBARPT(DVBAX),U,3)="P":"Pending",1:"")
|
---|
92 | W ?58,$E($P(DVBARPT(DVBAX),U,4),1,20)
|
---|
93 | Q
|
---|
94 | ;
|
---|
95 | READ ;** Read selected report
|
---|
96 | S DIR(0)="LAO^1:11^K:X[""."" X"
|
---|
97 | S DIR("A")="Select Report(s) to Transfer: "
|
---|
98 | S DIR("?",1)="Select a number or range of numbers from 1 to 10 (1,3,5 or 2-4,8). You will"
|
---|
99 | S DIR("?",2)="then be asked to select a division to transfer the report(s) to. After a"
|
---|
100 | S DIR("?")="division is selected, the new division will display next to the report(s)."
|
---|
101 | D ^DIR
|
---|
102 | I $D(DUOUT)!($D(DTOUT)) Q
|
---|
103 | I 'Y S DVBAOUT="" ;**User hit Return at report prompt
|
---|
104 | S:$D(Y) RPTVAR=Y
|
---|
105 | Q
|
---|
106 | ;
|
---|
107 | DIVSEL ;** Select a division to transfer to (Division must be in AMIE Site
|
---|
108 | ;** Parameter File)
|
---|
109 | N PARAMDA
|
---|
110 | S PARAMDA=$$IFNPAR^DVBAUTL3()
|
---|
111 | D:PARAMDA'>0 PARAMERR
|
---|
112 | I PARAMDA>0 DO
|
---|
113 | .S DIC(0)="AEMQ"
|
---|
114 | .S DIC("A")="Select a Division to Transfer to: "
|
---|
115 | .S DIC="^DVB(396.1,PARAMDA,2,"
|
---|
116 | .D ^DIC
|
---|
117 | .S:+Y>0 NDIVIEN=$P(^DVB(396.1,PARAMDA,2,+Y,0),U,1)
|
---|
118 | .S:+Y>0 NDIVNAME=$P(^DG(40.8,NDIVIEN,0),U,1)
|
---|
119 | .S:+Y'>0 NODIV=""
|
---|
120 | .K DIC,Y
|
---|
121 | Q
|
---|
122 | ;
|
---|
123 | PARAMERR ;** Error if the AMIE Site Parameter file has a problem
|
---|
124 | W *7,!,"The AMIE Site Parameter File is not set up properly."
|
---|
125 | W !,"Contact the Medical Center's IRM department."
|
---|
126 | W !,?30,"<Return> to continue."
|
---|
127 | R Z:DTIME
|
---|
128 | S DVBAOUT=""
|
---|
129 | Q
|
---|
130 | ;
|
---|
131 | ADJ ;** Adjust local array DVBARPT(#)
|
---|
132 | K DVBAER
|
---|
133 | N X,A
|
---|
134 | F X=1:1:11 S A=$P(RPTVAR,",",X) Q:'A D CHECK
|
---|
135 | D:'$D(DVBAER) CHNG
|
---|
136 | K Y
|
---|
137 | Q
|
---|
138 | ;
|
---|
139 | CHECK ;** Check for X-fer of report with status '= Pending
|
---|
140 | I $P(DVBARPT(A),U,3)'="P" DO:'$D(DVBAER) S DVBAER=1 Q
|
---|
141 | .W *7,!,"You have selected a report with a status other than Pending."
|
---|
142 | .W !,"All reports selected for transfer must be Pending."
|
---|
143 | .W !,?30,"<Return> to continue."
|
---|
144 | .R Z:DTIME
|
---|
145 | .Q
|
---|
146 | Q
|
---|
147 | ;
|
---|
148 | CHNG ;** Update local array DVBARPT(#)
|
---|
149 | F X=1:1:11 S A=$P(RPTVAR,",",X) Q:'A DO
|
---|
150 | .I $P(DVBARPT(A),U,3)="P" DO
|
---|
151 | ..S $P(DVBARPT(A),U,4)=NDIVNAME
|
---|
152 | ..S $P(DVBARPT(A),U,5)=NDIVIEN
|
---|
153 | Q
|
---|