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

ADGDSQA.m

Go to the documentation of this file.
  1. ADGDSQA ; IHS/ADC/PDW/ENM - DAY SURGERY PROVIDER QA REPORT ; [ 12/16/2003 4:06 PM ]
  1. ;;5.0;ADMISSION/DISCHARGE/TRANSFER;**3**;MAR 25, 1999
  1. ;
  1. ;IHS/ITSC/WAR 12/16/03 Added call to 'old'(?) init of IHS variales
  1. I '$D(DGOPT("QA1"))&($D(^DG(43,1,9999999.02))) D VAR^ADGVAR
  1. ;
  1. W @IOF,!!!?28,"DAY SURGERY PROVIDER QA REPORT",!!
  1. ;***> get date range
  1. BDATE S %DT="AEQ",%DT("A")="Select beginning date: ",X="" D ^%DT
  1. G END:Y=-1 S DGBDT=Y
  1. EDATE S %DT="AEQ",%DT("A")="Select ending date: ",X="" D ^%DT
  1. G END:Y=-1 S DGEDT=Y
  1. ;
  1. PROV ;***> select one or all providers
  1. K DIR S DIR(0)="Y",DIR("A")="Print Report for ALL Providers"
  1. S DIR("B")="NO",DIR("?")="Answer NO to print for only ONE provider"
  1. D ^DIR S DGPV=Y G EDATE:$D(DUOUT),END:$D(DTOUT),END:$D(DIROUT)
  1. ONE I Y=0 K DIR S DIR(0)="PO^6:EMQZ" D ^DIR
  1. G PROV:$D(DIRUT),ONE:Y=-1 S DGPV=Y
  1. ;
  1. ;***> get print device
  1. W !!,*7,"Report requires wide printer or condensed print.",!
  1. S %ZIS="PQ" D ^%ZIS G END:POP,QUE:$D(IO("Q")) U IO G CALC
  1. QUE K IO("Q") S ZTRTN="CALC^ADGDSQA",ZTDESC="DAY SURG PROV QA"
  1. ;F DGI="DGBDT","DGEDT","DGPV" S ZTSAVE(DGI)=""
  1. F DGI="DGBDT","DGEDT","DGPV","DGOPT(""GEN"")","DGOPT(""QA"")","DGOPT(""QA1"")" S ZTSAVE(DGI)=""
  1. D ^%ZTLOAD D ^%ZISC K ZTSK
  1. END K Y,DGBDT,DGEDT D HOME^%ZIS Q
  1. ;
  1. ;
  1. CALC ;***> Set up sorted utility file for date range
  1. S DGDT=DGBDT-.0001,DGEDT=DGEDT+.2400 K ^TMP($J)
  1. C1 S DGDT=$O(^ADGDS("AA",DGDT)) G NEXT:DGDT="",NEXT:DGDT>DGEDT S DFN=0
  1. C2 S DFN=$O(^ADGDS("AA",DGDT,DFN)) G C1:DFN="" S DGDFN1=0
  1. C3 S DGDFN1=$O(^ADGDS("AA",DGDT,DFN,DGDFN1)) G C2:DGDFN1=""
  1. G C3:'$D(^ADGDS(DFN,0)),C3:'$D(^ADGDS(DFN,"DS",DGDFN1,0)) S DGSTR=^(0)
  1. S (DGPRV,DGPRC,DGSRV,DGOBS,DGADM,DGADWK,DGNM,DGCMT)=""
  1. S DGPRV=$P(DGSTR,U,6) I DGPV'=1,DGPRV'=+DGPV G C3 ;wrong provider
  1. ;
  1. ;***> check for sent to obs, admit
  1. S DGSTR2=$G(^ADGDS(DFN,"DS",DGDFN1,2)),DGADM=$P(DGSTR2,U,2) ;admit?
  1. S DGOBS=$P(DGSTR,U,7) G C4:DGADM="Y" ;obsrv?/skip next lines if admit
  1. ;
  1. ;***> check if admitted w/in time limit in site parameters
  1. ;IHS/ITSC/WAR 12/16/03 if parameter is not set - site never used DS -
  1. ; I added $G to DGOPT("QA1") as defensive code. Chk Q41 of the
  1. ; logged PIMS issues.
  1. ;S Y=9999999-DGDT,X1=$P(DGDT,"."),X2=$P(DGOPT("QA1"),U,2) D C^%DTC
  1. S Y=9999999-DGDT,X1=$P(DGDT,"."),X2=$P($G(DGOPT("QA1")),U,2) D C^%DTC
  1. S DGX=9999999-X
  1. S DGX=$O(^DGPM("ATID1",DFN,DGX))
  1. I DGX'="",DGX'>Y S DGADWK=9999999-DGX
  1. ;
  1. C4 I (DGOBS="")&(DGADM="")&(DGADWK="") G C3
  1. ;
  1. ;***> set variables of data items to be printed
  1. S DGCHT=$S($D(^AUPNPAT(DFN,41,DUZ(2),0)):$P(^(0),U,2),1:"??") ;chrt #
  1. S DGPRC=$P(DGSTR,U,2),DGSRV=$P(DGSTR,U,5) ;procedure/service
  1. S:DGSRV'="" DGSRV=$P($G(^DIC(45.7,DGSRV,0)),U)
  1. S DGCMT=$P($G(DGSTR2),U,6) S DGNM=$P(^DPT(DFN,0),U) ;comment/patient
  1. ;
  1. S ^TMP($J,$P(DGDT,"."),DGNM,DFN)=DGCHT_U_DGSRV_U_DGPRV_U_DGPRC_U_DGOBS_U_DGADM_U_DGADWK_U_DGCMT G C3
  1. ;
  1. ;***> go to print rtn
  1. NEXT G ^ADGDSQA1