| [613] | 1 | IMRPNEUM ;;HCIOFO/FT/SPS-Pneumococcal Immunization Report ;05/12/00 16:24
 | 
|---|
 | 2 |  ;;2.1;IMMUNOLOGY CASE REGISTRY;**5**;Feb 09, 1998
 | 
|---|
 | 3 |  ; check security of user
 | 
|---|
 | 4 |  I '$D(^XUSEC("IMRA",DUZ)) S IMRLOC="IMRPNEUM" D ACESSERR^IMRERR,H^XUS K IMRLOC
 | 
|---|
 | 5 |  K DIR
 | 
|---|
 | 6 |  S DIR("A")="Select the report you want"
 | 
|---|
 | 7 |  S DIR(0)="S^1:PNEUMO-VAC FOR A DATE RANGE;2:NO PNEUMO-VAC IN 5 YEARS"
 | 
|---|
 | 8 |  S DIR("?",1)="The 'PNEUMO-VAC FOR A DATE RANGE' report will list all ICR patients who had"
 | 
|---|
 | 9 |  S DIR("?",2)="a pneumococcal vaccination within the date range selected by the user."
 | 
|---|
 | 10 |  S DIR("?",3)=" "
 | 
|---|
 | 11 |  S DIR("?",4)="The 'NO PNEUMO-VAC IN 5 YEARS' report will list living ICR patients who have"
 | 
|---|
 | 12 |  S DIR("?",5)="no record of a pneumococcal vaccination in the last 5 years."
 | 
|---|
 | 13 |  S DIR("?",6)=" "
 | 
|---|
 | 14 |  S DIR("?")="Please select the pneumococcal vaccination output you want."
 | 
|---|
 | 15 |  D ^DIR K DIR
 | 
|---|
 | 16 |  I $D(DIRUT) D KILL Q
 | 
|---|
 | 17 |  I Y=2 D ^IMRPNEU1 Q  ;no pneumo-vac in 5 years report
 | 
|---|
 | 18 |  ; select start/stop dates
 | 
|---|
 | 19 | ASK D ^IMRDATE Q:$G(IMRHNBEG)=""
 | 
|---|
 | 20 |  S IMRSD=IMRHNBEG,IMRED=IMRHNEND
 | 
|---|
 | 21 |  ; select device
 | 
|---|
 | 22 |  D IMRDEV^IMREDIT I POP D KILL Q
 | 
|---|
 | 23 |  I $D(IO("Q")) D  D KILL Q
 | 
|---|
 | 24 |  .S ZTRTN="START^IMRPNEUM",ZTDESC="Immunology Pneumococcal Report",ZTIO=ION_";"_IOM_";"_IOSL
 | 
|---|
 | 25 |  .S ZTSAVE("IMRED")="",ZTSAVE("IMRSD")=""
 | 
|---|
 | 26 |  .D ^%ZTLOAD
 | 
|---|
 | 27 |  .K ZTRTN,ZTDESC,ZTSK,ZTIO,ZTSAVE
 | 
|---|
 | 28 |  .Q
 | 
|---|
 | 29 | START ; start report
 | 
|---|
 | 30 |  U IO K ^TMP($J)
 | 
|---|
 | 31 |  S (IMRCNT,IMRDFN,IMRPG,IMRUT)=0,IMRLINE=$$REPEAT^XLFSTR("-",79)
 | 
|---|
 | 32 |  D GETNOW^IMRACESS ;get the current date/time
 | 
|---|
 | 33 |  D HDR
 | 
|---|
 | 34 |  S X="PXRHS03" X ^%ZOSF("TEST")
 | 
|---|
 | 35 |  I '$T D NODATA,EOP,KILL Q
 | 
|---|
 | 36 |  F  S IMRDFN=$O(^IMR(158,IMRDFN)) Q:'IMRDFN  S X=+^IMR(158,IMRDFN,0) D ^IMRXOR I $D(^DPT(X,0)) D A1
 | 
|---|
 | 37 |  I '$D(^TMP($J)) D NODATA,EOP,KILL Q
 | 
|---|
 | 38 |  S IMRNAME=""
 | 
|---|
 | 39 |  F  S IMRNAME=$O(^TMP($J,IMRNAME)) Q:IMRNAME=""!(IMRUT)  S IMRDFN=0 F  S IMRDFN=$O(^TMP($J,IMRNAME,IMRDFN)) Q:'IMRDFN!(IMRUT)  S IMRVDATE=0  F  S IMRVDATE=$O(^TMP($J,IMRNAME,IMRDFN,IMRVDATE)) Q:'IMRVDATE!(IMRUT)  D
 | 
|---|
 | 40 |  .I ($Y+4)>IOSL D EOP Q:IMRUT  D HDR
 | 
|---|
 | 41 |  .S IMRSSN=$P(^TMP($J,IMRNAME,IMRDFN,IMRVDATE),U,1)
 | 
|---|
 | 42 |  .W !,IMRNAME,?32,IMRSSN,?50,$$FMTE^XLFDT(IMRVDATE,"1D")
 | 
|---|
 | 43 |  .Q
 | 
|---|
 | 44 |  W !!,"Total: ",IMRCNT
 | 
|---|
 | 45 |  D:'IMRUT EOP
 | 
|---|
 | 46 |  S:$D(ZTQUEUED) ZTREQ="@"
 | 
|---|
 | 47 | KILL ; kill variables
 | 
|---|
 | 48 |  K ^TMP($J),^TMP("PXI",$J),DIR,DIROUT,DIRUT,DTOUT,DUOUT,I
 | 
|---|
 | 49 |  K IMR1,IMR2,IMR3,IMR5YR,IMRCNT,IMRDFN,IMRDTE,IMRED,IMRFLG,IMRLINE,IMRLOOP,IMRNAME,IMRNODE,IMRPG,IMRSD,IMRSSN,IMRSTN,IMRUT,IMRVDATE,IMRVISIT
 | 
|---|
 | 50 |  K X,Y
 | 
|---|
 | 51 |  D ^%ZISC
 | 
|---|
 | 52 |  Q
 | 
|---|
 | 53 | A1 ; get data from PCE utility
 | 
|---|
 | 54 |  S IMRNODE=$G(^DPT(+X,0))
 | 
|---|
 | 55 |  S IMRNAME=$P(IMRNODE,U,1),IMRSSN=$P(IMRNODE,U,9)
 | 
|---|
 | 56 |  K ^TMP("PXI",$J)
 | 
|---|
 | 57 |  D IMMUN^PXRHS03(+X)
 | 
|---|
 | 58 |  Q:'$D(^TMP("PXI",$J))
 | 
|---|
 | 59 |  S IMRLOOP=0
 | 
|---|
 | 60 |  F  S IMRLOOP=$O(^TMP("PXI",$J,"PNEUMO-VAC",IMRLOOP)) Q:'IMRLOOP  S IMRLOOP(1)=0 F  S IMRLOOP(1)=$O(^TMP("PXI",$J,"PNEUMO-VAC",IMRLOOP,IMRLOOP(1))) Q:'IMRLOOP(1)  D
 | 
|---|
 | 61 |  .S IMRVISIT=$P($G(^TMP("PXI",$J,"PNEUMO-VAC",IMRLOOP,IMRLOOP(1),0)),U,3)
 | 
|---|
 | 62 |  .Q:'IMRVISIT
 | 
|---|
 | 63 |  .Q:IMRVISIT<IMRSD
 | 
|---|
 | 64 |  .Q:IMRVISIT>IMRED
 | 
|---|
 | 65 |  .S ^TMP($J,IMRNAME,IMRDFN,IMRVISIT)=IMRSSN,IMRCNT=IMRCNT+1
 | 
|---|
 | 66 |  .Q
 | 
|---|
 | 67 |  Q
 | 
|---|
 | 68 | HDR ; report header
 | 
|---|
 | 69 |  W:$Y>0 @IOF
 | 
|---|
 | 70 |  S IMRPG=IMRPG+1
 | 
|---|
 | 71 |  W !?25,"PNEUMOCOCCAL VACCINATION REPORT",?70,"Page ",IMRPG
 | 
|---|
 | 72 |  W !?25,"From "_$$FMTE^XLFDT(IMRSD,"1D")_" to "_$$FMTE^XLFDT(IMRED,"1D")
 | 
|---|
 | 73 |  W !?25,"Run Date: ",IMRDTE
 | 
|---|
 | 74 |  W !,"NAME",?32,"SSN",?50,"DATE"
 | 
|---|
 | 75 |  W !,IMRLINE
 | 
|---|
 | 76 |  Q
 | 
|---|
 | 77 | EOP ; end of page question
 | 
|---|
 | 78 |  Q:$D(IO("S"))
 | 
|---|
 | 79 |  I IOST["C-" K DIR W ! S DIR(0)="E" D ^DIR K DIR I 'Y S IMRUT=1
 | 
|---|
 | 80 |  Q
 | 
|---|
 | 81 | NODATA ; no data message
 | 
|---|
 | 82 |  W !,"There was no data for this report."
 | 
|---|
 | 83 |  Q
 | 
|---|