Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: DVBADXFR

DVBADXFR.m

Go to the documentation of this file.
  1. DVBADXFR ;ALB/GTS-AMIE 7131 DIVISIONAL TRANSFER RTN ; 12/6/94 2:00 PM
  1. ;;2.7;AMIE;;Apr 10, 1995
  1. ;
  1. MAIN ;**Loop to select and update 7131 report divisions
  1. F DO I $D(DTOUT)!($D(DUOUT)!($D(DVBAOUT))) Q ;**QUIT top 'For' loop
  1. .D HOME^%ZIS
  1. .W @IOF
  1. .W !!,?5,"7131 Divisional Transfer",!!
  1. .S REQDA=$$SEL7131^DVBAUTL7()
  1. .S:+REQDA'>0 DVBAOUT=""
  1. .I +REQDA>0 DO
  1. ..D INITIAL,REQVARS
  1. ..D INITRPT^DVBAUTL7(REQDA)
  1. ..K DTOUT,DUOUT,DVBAOUT
  1. ..F DO I $D(DTOUT)!($D(DUOUT)!($D(DVBAOUT))) Q ;**QUIT 'For' loop
  1. ...K NODIV
  1. ...D DRAW
  1. ...D READ I $D(DTOUT)!($D(DUOUT)!($D(DVBAOUT))) Q ;**QUIT 'For' loop
  1. ...D DIVSEL I $D(DTOUT)!($D(DUOUT)!($D(DVBAOUT))) Q ;**QUIT 'For' loop
  1. ...D:'$D(NODIV) ADJ
  1. ..I '$D(DTOUT)&('$D(DUOUT)) D FILE^DVBAUTL7
  1. ..D EXITLP
  1. K DVBAOUT,REQDA,DA,DIE,DIR,DR,DTOUT,DUOUT
  1. W @IOF
  1. Q
  1. ;
  1. EXITLP K A,DA,DIE,DIR,DR,DTOUT,DUOUT,DVBADSCH,DVBAER,DVBAHD21,DVBALN,DVBAOUT
  1. K FLDDIV,FLDDTE,REQDIV,DVBARPT,DVBATDT,DVBATITL,DVBAX,X,Z,DVBAP,DVBAO
  1. K REQDTE,DVBARPT,REQDA,DVBCSSNO,SSN,HNAME,PNAM,DVBREQDT,DFN,RPTVAR
  1. K NDIVIEN,NDIVNAME,CNUM,NODIV
  1. Q
  1. ;
  1. INITIAL ;**initialize general variables
  1. S $P(DVBALN,"-",80)=""
  1. S DVBATITL="7131 Divisional Transfer"
  1. S X="NOW",%DT="ST"
  1. D ^%DT
  1. X ^DD("DD")
  1. S DVBATDT=Y
  1. S HNAME=$$SITE^DVBCUTL4()
  1. K X,Y,%DT
  1. Q
  1. ;
  1. REQVARS ;**Set variables unique to 7131
  1. S DVBREQDT=$P(^DVB(396,REQDA,0),U,4)
  1. I $P(^DVB(396,REQDA,2),U,10)="L" D ACT
  1. I $P(^DVB(396,REQDA,2),U,10)="A" D ADM
  1. S DFN=$P(^DVB(396,REQDA,0),U,1)
  1. S PNAM=$P(^DPT(DFN,0),U,1),SSN=$P(^DPT(+DFN,0),U,9)
  1. S CNUM=$S($D(^DPT(+DFN,.31)):$P(^(.31),U,3),1:"Unknown")
  1. D SSNOUT^DVBCUTIL
  1. S SSN=DVBCSSNO
  1. Q
  1. ;
  1. ADM ;**Set up admission date and discharge variables
  1. S Y=DVBREQDT
  1. D DD^%DT
  1. S DVBAHD21="Admission Date: "_Y
  1. K Y
  1. Q
  1. ;
  1. ACT ;**Set up activity date variable
  1. S Y=DVBREQDT
  1. D DD^%DT
  1. S DVBAHD21="Activity Date: "_Y
  1. K Y
  1. Q
  1. ;
  1. DRAW ;** Output Division screen
  1. I IOST?1"C-".E W @IOF
  1. W "Information Request Form"
  1. W ?35,HNAME
  1. W ?59,DVBATDT
  1. W !,DVBALN
  1. W !,"Patient: "
  1. W PNAM
  1. W ?54,"SSN: "
  1. W SSN
  1. W !,"Claim #: ",CNUM,!
  1. W DVBAHD21
  1. W !!,?9,"Report",?37,"Selected",?48,"Status",?58,"Division"
  1. W !,DVBALN
  1. F DVBAX=0:0 S DVBAX=$O(DVBARPT(DVBAX)) Q:'DVBAX D DRAW1
  1. W !,DVBALN
  1. Q
  1. ;
  1. DRAW1 ;** Output a report to the screen
  1. W !,DVBAX
  1. W ?3,$P(DVBARPT(DVBAX),U,1)
  1. W ?40,$S($P(DVBARPT(DVBAX),U,2)["Y":"YES",1:"NO")
  1. W ?48,$S($P(DVBARPT(DVBAX),U,3)="C":"Completed",$P(DVBARPT(DVBAX),U,3)="P":"Pending",1:"")
  1. W ?58,$E($P(DVBARPT(DVBAX),U,4),1,20)
  1. Q
  1. ;
  1. READ ;** Read selected report
  1. S DIR(0)="LAO^1:11^K:X[""."" X"
  1. S DIR("A")="Select Report(s) to Transfer: "
  1. S DIR("?",1)="Select a number or range of numbers from 1 to 10 (1,3,5 or 2-4,8). You will"
  1. S DIR("?",2)="then be asked to select a division to transfer the report(s) to. After a"
  1. S DIR("?")="division is selected, the new division will display next to the report(s)."
  1. D ^DIR
  1. I $D(DUOUT)!($D(DTOUT)) Q
  1. I 'Y S DVBAOUT="" ;**User hit Return at report prompt
  1. S:$D(Y) RPTVAR=Y
  1. Q
  1. ;
  1. DIVSEL ;** Select a division to transfer to (Division must be in AMIE Site
  1. ;** Parameter File)
  1. N PARAMDA
  1. S PARAMDA=$$IFNPAR^DVBAUTL3()
  1. D:PARAMDA'>0 PARAMERR
  1. I PARAMDA>0 DO
  1. .S DIC(0)="AEMQ"
  1. .S DIC("A")="Select a Division to Transfer to: "
  1. .S DIC="^DVB(396.1,PARAMDA,2,"
  1. .D ^DIC
  1. .S:+Y>0 NDIVIEN=$P(^DVB(396.1,PARAMDA,2,+Y,0),U,1)
  1. .S:+Y>0 NDIVNAME=$P(^DG(40.8,NDIVIEN,0),U,1)
  1. .S:+Y'>0 NODIV=""
  1. .K DIC,Y
  1. Q
  1. ;
  1. PARAMERR ;** Error if the AMIE Site Parameter file has a problem
  1. W *7,!,"The AMIE Site Parameter File is not set up properly."
  1. W !,"Contact the Medical Center's IRM department."
  1. W !,?30,"<Return> to continue."
  1. R Z:DTIME
  1. S DVBAOUT=""
  1. Q
  1. ;
  1. ADJ ;** Adjust local array DVBARPT(#)
  1. K DVBAER
  1. N X,A
  1. F X=1:1:11 S A=$P(RPTVAR,",",X) Q:'A D CHECK
  1. D:'$D(DVBAER) CHNG
  1. K Y
  1. Q
  1. ;
  1. CHECK ;** Check for X-fer of report with status '= Pending
  1. I $P(DVBARPT(A),U,3)'="P" DO:'$D(DVBAER) S DVBAER=1 Q
  1. .W *7,!,"You have selected a report with a status other than Pending."
  1. .W !,"All reports selected for transfer must be Pending."
  1. .W !,?30,"<Return> to continue."
  1. .R Z:DTIME
  1. .Q
  1. Q
  1. ;
  1. CHNG ;** Update local array DVBARPT(#)
  1. F X=1:1:11 S A=$P(RPTVAR,",",X) Q:'A DO
  1. .I $P(DVBARPT(A),U,3)="P" DO
  1. ..S $P(DVBARPT(A),U,4)=NDIVNAME
  1. ..S $P(DVBARPT(A),U,5)=NDIVIEN
  1. Q