| 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
 | 
|---|