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

DGVPTIB5.m

Go to the documentation of this file.
  1. DGVPTIB5 ;alb/mjk - IBOVOP1 for export with PIMS v5.3; 4/21/93
  1. ;;5.3;Registration;**1015**;Aug 13, 1993;Build 21
  1. ;
  1. IBOVOP1 ;ALB/RLW - Report of Visits for NSC Outpatients ; 12-JUN-92
  1. ;;Version 1.5 ; INTEGRATED BILLING ;**14**; 29-JUL-92
  1. MAIN ; perform report for day(s)
  1. Q ;ihs/cmi/maw 02/08/2012 patch 1014 no IB in IHS so entire routine not needed
  1. D HDR,APPT,STOPCD,REGS,PRINT
  1. K DFN,^TMP("IBOVOP",$J),J,IBAPPT,IBJ
  1. Q
  1. APPT ; scan visits for NSC patients
  1. ; field 2="CLINIC APPT"
  1. ; field 4=clinic
  1. ; field 5=appt type
  1. ; field 6=status
  1. S IBCL="",IBSEQ=0,J=""
  1. F S IBCL=$O(^SC("AC","C",IBCL)) Q:IBCL="" S IBFLD4=$P(^SC(IBCL,0),"^") Q:IBFLD4="" S J=IBDATE D
  1. .F S J=$O(^SC(IBCL,"S",J)) Q:$E(J,1,7)'=IBDATE S IBIEN=0 D
  1. ..F S IBIEN=$O(^SC(IBCL,"S",J,1,IBIEN)) Q:IBIEN="" S DFN=$P(^(IBIEN,0),"^",1) D
  1. ...Q:'$$BIL^DGMTUB(DFN,J)
  1. ...Q:'$D(^DPT(DFN,"S",J,0)) S IBSDATA=^(0)
  1. ...S ^TMP("IBOVOP",$J,$$FLD1(DFN),"CLINIC APPT",$$FLD3(J),IBSEQ)=$E(IBFLD4,1,16)_"^"_$$FLD5($P(IBSDATA,"^",16))_"^"_$E($P($$STATUS^SDAM1(DFN,J,IBCL,IBSDATA),";",3),1,17)_"^"_DFN
  1. Q
  1. STOPCD ; scan ADD/EDIT STOP CODES for day
  1. ; field 2="STOP CODE"
  1. ; field 4=stop code
  1. ; field 5=appt type
  1. N J S J=IBDATE,IBFLD4="",IBSEQ=0
  1. F S J=$O(^SDV(J)),DFN="" Q:$E(J,1,7)'=IBDATE S DFN=$P(^SDV(J,0),"^",2) I $$BIL^DGMTUB(DFN,J) S IB="" D
  1. .F S IB=$O(^SDV(J,"CS","B",IB)) Q:IB="" S I="",I=$O(^(IB,I)) Q:I="" D
  1. ..S IBDATA=^SDV(J,"CS",I,0)
  1. ..S ^TMP("IBOVOP",$J,$$FLD1(DFN),"STOP CODE",$$FLD3(J),IBSEQ)=$E($P(^DIC(40.7,$P(IBDATA,"^",1),0),"^"),1,16)_"^"_$$FLD5($P(IBDATA,"^",5))_"^^"_DFN S IBSEQ=(IBSEQ+1)
  1. Q
  1. REGS ; registrations for day
  1. N J S J=IBDATE,IBFLD4="",IBFLD5=""
  1. F S J=$O(^DPT("ADIS",J)) Q:J="" Q:$E(J,1,7)'=IBDATE S DFN="" D
  1. .F S DFN=$O(^DPT("ADIS",J,DFN)) Q:DFN="" D
  1. ..S IBAIEN="",IBAIEN=$O(^DPT("ADIS",J,DFN,IBAIEN)) Q:(IBAIEN="")
  1. ..S IBDATA=^DPT(DFN,"DIS",IBAIEN,0) Q:($P(IBDATA,"^",2)="2")!('$$BIL^DGMTUB(DFN,$P(IBDATA,"^",6)))
  1. ..S IBFLD1=$$FLD1(DFN),IBFLD3=$$FLD3(J),Y=$P(IBDATA,"^",3)
  1. ..I Y'="" S C=$P(^DD(2.101,2,0),"^",2) D Y^DIQ
  1. ..S IBFLD4=$S($D(Y):Y,1:"")
  1. ..S Y=$P(IBDATA,"^",7)
  1. ..I Y'="" S C=$P(^DD(2.101,6,0),"^",2) D Y^DIQ
  1. ..S IBFLD5=$S($D(Y):Y,1:"")
  1. ..S ^TMP("IBOVOP",$J,$$FLD1(DFN),"REGISTRATION",$$FLD3(J),IBSEQ)=$E(IBFLD4,1,16)_"^"_$E(IBFLD5,1,30)_"^^"_DFN
  1. Q
  1. CHRGS ; find OP charges for day, if any.
  1. ; build string for print
  1. Q:DFN=""
  1. I $D(^IB("AFDT",DFN,-IBDATE))=10 S IBPRNT="" D
  1. .F S IBPRNT=$O(^IB("AFDT",DFN,-IBDATE,IBPRNT)) Q:(IBPRNT="")!(IBQUIT) S IBIEN="" D
  1. ..F S IBIEN=$O(^IB("AD",IBPRNT,IBIEN)) Q:(IBIEN="")!(IBQUIT) S IBDATA=$G(^IB(IBIEN,0)) Q:(IBDATA="") D
  1. ...S Y=$P(IBDATA,"^",5),C=$P(^DD(350,.05,0),"^",2) D Y^DIQ S IBSTAT=Y K C,Y
  1. ...I $Y>(IOSL-5) D PAUSE^IBOUTL Q:IBQUIT D HDR W !,IBFLD1
  1. ...S IBACT=$S($P(^IBE(350.1,$P(IBDATA,"^",3),0),"^",8)'="":$P(^(0),"^",8),1:$P(^(0),"^",1)),IBAMT=$P(IBDATA,"^",7),IBAMT=$S(IBACT["CANCEL":"*($"_IBAMT_")",1:"* $"_IBAMT)
  1. ...W !?5,IBAMT,?13,IBACT,?63,IBSTAT S IBLINE=(IBLINE+1)
  1. Q
  1. HDR ; print header
  1. S IBPAGE=IBPAGE+1,IBLINE=5,IBRECNO=1,IBTITLE="Category C Outpatient and Registration Activity for "_$$DAT1^IBOUTL(IBDATE)
  1. I $E(IOST,1,2)["C-"!(IBPAGE>1) W @IOF
  1. W ?(80-$L(IBTITLE))\2,IBTITLE
  1. S IBTITLE="Printed: "_$$DAT1^IBOUTL(DT)
  1. W !?(80-$L(IBTITLE))\2,IBTITLE,?70,"Page: "_IBPAGE K Y
  1. W !!,"Patient/Event",?20,"Time",?26,"Clinic/Stop",?44,"Appt.Type",?63,"(Status)",!
  1. S LINE="",$P(LINE,"-",1,IOM)="" W LINE K LINE
  1. Q
  1. PRINT ; retrieve data for printing
  1. S IBFLD1="",DFN="" I '$D(^TMP("IBOVOP",$J)) W !!,"NONE"
  1. F S IBFLD1=$O(^TMP("IBOVOP",$J,IBFLD1)) Q:(IBFLD1="")!(IBQUIT) W ! D:IBLINE>55 HDR W !,IBFLD1 D D CHRGS Q:IBQUIT
  1. .S IBFLD2="" F S IBFLD2=$O(^TMP("IBOVOP",$J,IBFLD1,IBFLD2)) Q:(IBFLD2="")!(IBQUIT) W !?5,IBFLD2 D
  1. ..S IBFLD3="" F S IBFLD3=$O(^TMP("IBOVOP",$J,IBFLD1,IBFLD2,IBFLD3)) Q:(IBFLD3="")!(IBQUIT) D
  1. ...S IBSEQ="" F S IBSEQ=$O(^TMP("IBOVOP",$J,IBFLD1,IBFLD2,IBFLD3,IBSEQ)) Q:(IBSEQ="")!(IBQUIT) D
  1. ....S IBDATA=^(IBSEQ),IBFLD4=$P(IBDATA,"^",1),IBFLD5=$P(IBDATA,"^",2),IBFLD6=$P(IBDATA,"^",3),DFN=$P(IBDATA,"^",4)
  1. ....W ?20,IBFLD3,?26,IBFLD4,?44,IBFLD5,?63,IBFLD6,! S IBFLD4="",IBFLD5="",IBFLD6="",IBLINE=(IBLINE+1)
  1. ....I IBLINE>55 D HDR W !,IBFLD1 I $D(^TMP("IBOVOP",$J,IBFLD1,IBFLD2,IBFLD3,IBSEQ+1)) W !?5,IBFLD2
  1. ....I $Y>(IOSL-5) D PAUSE^IBOUTL Q:IBQUIT D HDR W !,IBFLD1,!?5,IBFLD2
  1. Q:IBQUIT D PAUSE^IBOUTL
  1. Q
  1. FLD1(DFN) ; patient - get patient name and l-4 ssn id
  1. I '$G(DFN) Q ""
  1. N X S X=$$PT^IBEFUNC(DFN)
  1. Q $E($P(X,"^"),1,20)_" "_$E(X)_$P(X,"^",3)
  1. ;
  1. FLD3(Y) ; time - convert date/time to time only, no seconds
  1. I '$G(Y) Q ""
  1. X ^DD("DD") Q $P($P(Y,"@",2),":",1,2)
  1. ;
  1. FLD5(I) ; get appointment type name
  1. Q $E($P($G(^SD(409.1,+$G(I),0)),"^",1),1,17)