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

BZXLRSER.m

Go to the documentation of this file.
  1. BZXLRSER ;IHS/PIMC/JLG - AZ HEALTH DEPT REPORT [ 10/09/2002 1:08 PM ]
  1. ;;1.0;Special local routine for reportable diseases
  1. ;This is designed to replace DWLRSER1
  1. ;It uses file 1966360 as the table of files to report
  1. ;It calls BZXLRSEP as the routine to do the actual printing
  1. ;
  1. S DIR("A")="Enter start date"
  1. S DIR(0)="D^:"_DT_":EPX"
  1. D ^DIR
  1. I $D(DIRUT) D Q
  1. .K DIR,DIRUT,DTOUT,DUOUT
  1. S BZXSDT=Y
  1. S BZXVDT=Y-.5
  1. GETEND S DIR("A")="Enter end date"
  1. S DIR(0)="D^:"_DT_":EPX"
  1. D ^DIR
  1. I $D(DIRUT) D Q
  1. .K DIR,DIRUT,DTOUT,DUOUT,BZXVDT
  1. S BZXENDT=Y
  1. I BZXENDT<BZXVDT D G GETEND
  1. .W !,"End date cannot be before start date. Try again."
  1. S %ZIS="Q"
  1. D ^%ZIS
  1. Q:POP
  1. I $D(IO("Q")) D Q
  1. .S ZTRTN="LP^BZXLRSER"
  1. .S ZTSAVE("BZX*")=""
  1. .S ZTDESC="Reportable diseases"
  1. .D ^%ZTLOAD
  1. .K ZTSAVE,ZTDESC,ZTRTN,IO("Q")
  1. ;
  1. LP ;Start looping through tests
  1. K ^TMP($J)
  1. U IO
  1. ;BZXVDT is both the verification date and the order date
  1. ;In effect we only look at the verification date
  1. F S BZXVDT=$O(^LRO(69,BZXVDT)) Q:'BZXVDT!(BZXVDT>BZXENDT) D
  1. .S LOC=""
  1. .F S LOC=$O(^LRO(69,BZXVDT,1,"AN",LOC)) Q:LOC="" D
  1. ..S LRDFN=""
  1. ..F S LRDFN=$O(^LRO(69,BZXVDT,1,"AN",LOC,LRDFN)) Q:'LRDFN D
  1. ...S LRIDT=9999999-BZXVDT-.5
  1. ...S X1=BZXVDT
  1. ...S X2=-545
  1. ...D C^%DTC
  1. ...S LRIDTLM=9999999-X
  1. ...F S LRIDT=$O(^LRO(69,BZXVDT,1,"AN",LOC,LRDFN,LRIDT)) Q:'LRIDT!(LRIDT>LRIDTLM) D
  1. ....Q:'$D(^LR(LRDFN,"CH",LRIDT,0))
  1. ....S X=$P(^LR(LRDFN,"CH",LRIDT,0),U,3)\1
  1. ....Q:X'=BZXVDT
  1. ....S D0=0
  1. ....F S D0=$O(^BZXRPTDS(D0)) Q:'D0 D
  1. .....S BZXTPTR=$P(^BZXRPTDS(D0,0),U,1)
  1. .....S BZXTYPE=$P(@(U_$P(^LAB(60,BZXTPTR,0),U,12)_"0)"),U,2)
  1. .....S BZXDLOC=$P(^LAB(60,BZXTPTR,0),U,5)
  1. .....Q:'$D(^LR(LRDFN,"CH",LRIDT,$P(BZXDLOC,";",2)))
  1. .....S BZXRES=$P(^LR(LRDFN,"CH",LRIDT,$P(BZXDLOC,";",2)),U,1)
  1. .....S BZXFLD=$P(^LAB(60,BZXTPTR,0),U,12)
  1. .....S BZXRAWRS=BZXRES
  1. .....S TRANS=$G(^BZXRPTDS(D0,2))
  1. .....I $L(TRANS) D
  1. ......S Y=BZXRES
  1. ......K X
  1. ......X TRANS
  1. ......Q:'$D(X)
  1. ......S BZXRES=X
  1. .....I $E(BZXTYPE,1)="N" D
  1. ......S COND=$P(^BZXRPTDS(D0,0),U,4)
  1. ......I COND="EQ" S COND="="
  1. ......S VALUE=$P(^BZXRPTDS(D0,0),U,3)
  1. ......I $E(BZXRES,1)=">" S BZXRES=$P(BZXRES,">",2)+1
  1. ......S BZXRES=+BZXRES
  1. ......I @(BZXRES_COND_VALUE) D STORE
  1. .....E I BZXTYPE="S" D
  1. ......;What the values stand for in the set
  1. ......S BZXSTNFR=$P(@(U_BZXFLD_"0)"),U,3)
  1. ......F I=1:1 S Y=$P(BZXSTNFR,";",I) Q:Y="" D
  1. .......I $P(Y,":",1)=BZXRAWRS S BZXRAWRS=$P(Y,":",2)
  1. ......S D1=0
  1. ......F S D1=$O(^BZXRPTDS(D0,1,D1)) Q:'D1 D
  1. .......S VALUE=$P(^BZXRPTDS(D0,1,D1,0),U,1)
  1. .......I BZXRES=VALUE D STORE
  1. .....E I $E(BZXTYPE,1)="F" D
  1. ......S D1=0
  1. ......F S D1=$O(^BZXRPTDS(D0,4,D1)) Q:'D1 D
  1. .......S COND=$P(^BZXRPTDS(D0,4,D1,0),U,2)
  1. .......S COND=$S(COND="C":"[",1:"=")
  1. .......S VALUE=$P(^BZXRPTDS(D0,4,D1,0),U,1)
  1. .......I BZXRES'=+BZXRES S BZXRES=""""_BZXRES_""""
  1. .......I @(BZXRES_COND_VALUE) D STORE
  1. D ^BZXLRSEP
  1. K ^TMP($J)
  1. D ^%ZISC
  1. Q
  1. ;
  1. STORE ;Store data for printing
  1. K BZXCOMM,BZXCMIN
  1. S BZXFILE=$P(^LR(LRDFN,0),U,2)
  1. S DFN=$P(^LR(LRDFN,0),U,3)
  1. S PATNAM=$S(BZXFILE=2:$P(^DPT(DFN,0),U,1),BZXFILE=67:"*"_$P(^LRT(67,DFN,0),U,1),1:"UNK")
  1. S IENS=DFN_","
  1. S SEX=$$GET1^DIQ(BZXFILE,IENS,.02)
  1. S DOB=$$GET1^DIQ(BZXFILE,IENS,.03)
  1. Q:BZXFILE=67.3
  1. I BZXFILE=67 D
  1. .S ID=$P(^LRT(67,DFN,0),U,9)
  1. .S (STREET,CITY,STATE,ZIP,PHONE,BZXCOMM,BZXCMIN)=""
  1. E I BZXFILE=2 D
  1. .S ID=$$HRN^AUPNPAT(DFN,DUZ(2))
  1. .S Y=^DPT(DFN,.11)
  1. .S STREET=$P(Y,U,1)
  1. .S CITY=$P(Y,U,4)
  1. .S ZIP=$P(Y,U,6)
  1. .S IENS=DFN_","
  1. .S STATE=$$GET1^DIQ(2,IENS,.115)
  1. .S PHONE=$$GET1^DIQ(2,IENS,.131)
  1. .S BZXCOMM=$$COMMRES^AUPNPAT(DFN,"E")
  1. .S BZXCMIN=$$COMMRES^AUPNPAT(DFN,"I")
  1. .I 'BZXCMIN D
  1. ..S BZXXCOMM=$P(^AUPNPAT(DFN,11),U,18)
  1. ..Q:BZXCOMM=""
  1. ..S BZXCMIN=$O(^AUTTCOM("B",BZXCOMM,""))
  1. I BZXCMIN,$D(BZXGR),'$D(^BZXGRHR("B",BZXCMIN)) Q
  1. I $D(BZXGR),'BZXCMIN Q
  1. S ^TMP($J,D0,LRDFN,LRIDT)=PATNAM_U_ID_U_DOB_U_SEX_U_PHONE_U_STREET_U_CITY_U_STATE_U_ZIP_U_BZXCOMM_U_BZXRAWRS
  1. Q