| 1 | IMRLIST ;ISC-SF/JLI HCIOFO/FT-LIST PATIENTS IN THE IMR FILE ; 7/24/02 8:14am | 
|---|
| 2 | ;;2.1;IMMUNOLOGY CASE REGISTRY;**5,18**;Feb 09, 1998 | 
|---|
| 3 | ENTRY ;[IMR PATIENT LIST] - Local Registry List - ICR Patients | 
|---|
| 4 | W !,?10,"####################################################" | 
|---|
| 5 | W !,?10,"#",?20,"Local Registry List - ICR Patients",?61,"#" | 
|---|
| 6 | W !,?10,"####################################################" | 
|---|
| 7 | D KILL,^IMRDATE  Q:$G(IMRHQUIT) | 
|---|
| 8 | S IMRPAT=1,IMRSCT=1,REIM=1,IMREXC="B" | 
|---|
| 9 | K DIR  S DIR(0)="S^A:alive;D:deceased;B:both" | 
|---|
| 10 | S DIR("A")="Select Type of Patients" | 
|---|
| 11 | S DIR("?")="^D HELP^IMRLIST" | 
|---|
| 12 | D ^DIR  K DIR  I $D(DIRUT)  D KILL  Q | 
|---|
| 13 | S IMREXC=Y | 
|---|
| 14 | NEWP R !!,"List New Patients added to the registry during this time (Y/N)? N// ",X:DTIME G:'$T!(X[U) KILL S:X="" X="N" I "Yy"[$E(X) S IMRPAT=2 | 
|---|
| 15 | I "YyNn"'[$E(X) W $C(7),"  ??",!!,"Enter YES or NO" G NEWP | 
|---|
| 16 | I $D(DIRUT) D KILL Q | 
|---|
| 17 | ; | 
|---|
| 18 | CAT R !!,"Do you want the list sorted by Category (Y/N)? N// ",X:DTIME G:'$T!(X[U) KILL S:X="" X="N" I "Yy"[$E(X) S IMRSCT=2 | 
|---|
| 19 | I "YyNn"'[$E(X) W $C(7),"  ??",!!,"Enter YES or NO" G CAT | 
|---|
| 20 | ;  IF LISTING BY CATEGORY IS NO GIVE THE FOLLOWING PROMPT | 
|---|
| 21 | REIM I IMRSCT=2 G DEV | 
|---|
| 22 | R !!,"Do you want the list sorted by Reimbursement Level (Y/N)? N// ",X:DTIME G:'$T!(X[U) KILL S:X="" X="N" I "Yy"[$E(X) S REIM=2 | 
|---|
| 23 | I "YyNn"'[$E(X) W $C(7),"  ??",!!,"Enter YES or NO" G REIM | 
|---|
| 24 | ; | 
|---|
| 25 | DEV S %ZIS="MPQ" D IMRDEV^IMREDIT | 
|---|
| 26 | G:POP KILL | 
|---|
| 27 | I $D(IO("Q")) D  G KILL | 
|---|
| 28 | .S ZTRTN="DQ^IMRLIST",ZTDESC="List Immunology Patients" | 
|---|
| 29 | .S ZTSAVE("*")="",ZTIO=ION_";"_IOM_";"_IOSL | 
|---|
| 30 | .D ^%ZTLOAD K ZTRTN,ZTDESC,ZTSAVE,ZTSK | 
|---|
| 31 | .Q | 
|---|
| 32 | DQ ; | 
|---|
| 33 | U IO K ^TMP($J),IMRLR,IMROUT,IMRPTF,IMRRX,IMRRXN,IMRSCH,IMRST,IMRSUF S IMRPG=0 | 
|---|
| 34 | D GETNOW^IMRACESS | 
|---|
| 35 | S IMRHED="Patients Seen During "_$G(IMRHRANG) | 
|---|
| 36 | S IMRHED(1)="FOR "_$S(IMREXC="A":"LIVING ",IMREXC="B":"ALIVE & DECEASED ",IMREXC="D":"DECEASED ",1:"")_"PATIENTS IN THE FILE" | 
|---|
| 37 | F IMRI=0:0 S IMRI=$O(^IMR(158,IMRI)) Q:IMRI'>0  S X=+^(IMRI,0),IMRCAT=$P(^(0),U,42) D ^IMRXOR S (DFN,IMRDFN)=X I $D(^DPT(DFN,0)) D ADD | 
|---|
| 38 | D HEDR S I="",(K,N)=0,IMRUT=0 | 
|---|
| 39 | D:(IMRSCT=1)&(REIM=1) PSRP | 
|---|
| 40 | D:(REIM=2)&(IMRSCT=1) PRBR | 
|---|
| 41 | D:(IMRSCT=2)&(REIM=1) PCTR | 
|---|
| 42 | S:$D(ZTQUEUED) ZTREQ="@" | 
|---|
| 43 | D:IOST["C-" PRTC | 
|---|
| 44 | KILL D ^%ZISC | 
|---|
| 45 | K ^TMP($J),DFN,DRUG,FDT,FIP,IEN,IMNR,IMRI,IMRTYP,IMRUT,I,J,K,N,X,Y,POP,IMRFLG,IMRSTN,IMRCAT,VADM,VA,VAERR,VAEL,D,DISYS,IMREXC,IMRPG,IMRHED,IMRSD | 
|---|
| 46 | K IMRED,IMRPER,IMRAD,IMRCHK,IMRDD,IMRDFN,IMRDISP,IMRDOD,IMRDSP,IMRDTE,IMREC,IMRFB,IMRINP,IMRJ,IMRLAB | 
|---|
| 47 | K IMRLR,IMROUT,IMRPTF,IMRRX,IMRRXN,IMRSCH,IMRBL,IMRHQUIT,IMRHRANG,IMRHTART,IMRN,IMRPAT,IMRRI,IMRSCT,LCL,LCLAB,LG,LGROUP,LLOC,LNL,LNLT,LOCNM,LV3,IMRH1HED,IMRH2HED,IMRHENGD,IMRHNBEG,IMRHNEND,IMRST,IMRSUF | 
|---|
| 48 | Q | 
|---|
| 49 | HELP ; | 
|---|
| 50 | ;;Patients who have no utilization in the provided date range or | 
|---|
| 51 | ;;whose date of death is before the start date will NOT be included | 
|---|
| 52 | ;;in the report of any type. | 
|---|
| 53 | ;; | 
|---|
| 54 | ;;A - Alive patients | 
|---|
| 55 | ;;Only patients who were alive during the whole time frame will be | 
|---|
| 56 | ;;included in the report. If the date of death is between start and | 
|---|
| 57 | ;;end dates, the patient will be skipped. | 
|---|
| 58 | ;; | 
|---|
| 59 | ;;D - Deceased patients | 
|---|
| 60 | ;;Only patients who died during the provided time frame will be | 
|---|
| 61 | ;;included in the report. If the patient is alive or the date of | 
|---|
| 62 | ;;death is after the end date, the patient will be skipped. | 
|---|
| 63 | ;; | 
|---|
| 64 | ;;B - Both alive and deceased | 
|---|
| 65 | ;;All patients (except those mentioned in the first paragraph) will | 
|---|
| 66 | ;;be included in the report. | 
|---|
| 67 | ; | 
|---|
| 68 | N DIR,I,L,TMP | 
|---|
| 69 | S L=IOSL-10  S:L<0 L=999 | 
|---|
| 70 | F I=1:1  S TMP=$T(HELP+I)  Q:TMP'[";;"  D | 
|---|
| 71 | . I '(I#L)  W !  D  D ^DIR  W ! | 
|---|
| 72 | . . S DIR(0)="FAO",DIR("A")="Enter RETURN to continue: " | 
|---|
| 73 | . W !,$P(TMP,";;",2) | 
|---|
| 74 | Q | 
|---|
| 75 | PSRP ;standard format | 
|---|
| 76 | I '$D(^TMP($J)) W !!?5,"***NO PATIENTS FOUND IN DATE RANGE***" | 
|---|
| 77 | F  Q:IMRUT  S I=$O(^TMP($J,I)) Q:I=""  F J=0:0 S J=$O(^TMP($J,I,J)) Q:J'>0  D:($Y+3>IOSL) PRTC Q:IMRUT  D:($Y+3>IOSL) HEDR S K=K+1,N=N+1 W:'(K#5) ! W !,$J(N,5),?6,$P(^(J),U),?36,$P(^(J),U,2),?47,$P(^(J),U,3),?53,$P(^(J),U,5),?65,$P(^(J),U,4) | 
|---|
| 78 | Q | 
|---|
| 79 | PRBR ;by arv use | 
|---|
| 80 | I '$D(^TMP($J)) W !!?5,"***NO PATIENTS FOUND IN THIS DATE RANGE***" | 
|---|
| 81 | S TY="" F  S TY=$O(^TMP($J,TY)),MC="" Q:TY=""  F  S MC=$O(^TMP($J,TY,MC)),RM="" Q:MC=""  F  S RM=$O(^TMP($J,TY,MC,RM)),PD="" Q:RM=""  F  S PD=$O(^TMP($J,TY,MC,RM,PD)) Q:PD=""  D:($Y+3>IOSL) HEDR S K=K+1,N=N+1 W:'(K#5) ! D PR2 | 
|---|
| 82 | Q | 
|---|
| 83 | PR2 S TYX=TY W:TY'=TYX !,"*** "_TY_" ***" | 
|---|
| 84 | W !,$J(N,5),?7,MC,?14,RM,?39,$P($G(^TMP($J,TY,MC,RM,PD)),U,2),?51,$P($G(^TMP($J,TY,MC,RM,PD)),U,3),?57,$P($G(^TMP($J,TY,MC,RM,PD)),U,4) | 
|---|
| 85 | Q | 
|---|
| 86 | PCTR ;by  category | 
|---|
| 87 | I '$D(^TMP($J)) W !!?5,"***NO PATIENTS FOUND IN THIS DATE RANGE***" | 
|---|
| 88 | S MRC="" F  S MRC=$O(^TMP($J,MRC)),RNM="" Q:MRC=""  F  S RNM=$O(^TMP($J,MRC,RNM)),PID="" Q:RNM=""  F  S PID=$O(^TMP($J,MRC,RNM,PID)) Q:PID=""  D:($Y+3>IOSL) PRTC Q:IMRUT  D:($Y+3>IOSL) HEDR S K=K+1,N=N+1 W:'(K#5) ! D PC2 | 
|---|
| 89 | Q | 
|---|
| 90 | PC2 W !,$J(N,5),?7,MRC,?14,RNM,?39,$P($G(^TMP($J,MRC,RNM,PID)),U,2),?61,$P($G(^TMP($J,MRC,RNM,PID)),U,4),?71,$P($G(^TMP($J,MRC,RNM,PID)),U,3) | 
|---|
| 91 | Q | 
|---|
| 92 | ADD ; | 
|---|
| 93 | N EXIT | 
|---|
| 94 | D 2^VADPT | 
|---|
| 95 | D PERCHK^IMRLCAT1 S DFN=IMRDFN Q:'IMRCHK  ;if date range check when patient was seen. quit if not seen in date range. | 
|---|
| 96 | Q:$G(IMRHNBEG)=""  Q:$G(IMRHNEND)="" | 
|---|
| 97 | S IMRDOD=$P($G(^IMR(158,IMRI,5)),U,19) ;get IMR DATE OF DEATH | 
|---|
| 98 | S IMRDOD=$S(+VADM(6)>0:+VADM(6),IMRDOD>0:IMRDOD,1:"") | 
|---|
| 99 | S EXIT=1 | 
|---|
| 100 | I IMRDOD>0  D | 
|---|
| 101 | . ;--- Quit if date of death is before start date | 
|---|
| 102 | . Q:IMRDOD<IMRHNBEG | 
|---|
| 103 | . ;--- Quit if deceased selected and date of death after end date | 
|---|
| 104 | . I IMREXC="D"  Q:IMRDOD>IMRHNEND | 
|---|
| 105 | . ;--- Quit if alive selected and patient is dead | 
|---|
| 106 | . I IMREXC="A"  Q:IMRDOD'>IMRHNEND | 
|---|
| 107 | . ;--- Indicate where DOD came from; MAS or ICR | 
|---|
| 108 | . S IMRDOD=$$FMTE^XLFDT(IMRDOD,"2DF")_$S(+VADM(6)>0:"",1:" (ICR)") | 
|---|
| 109 | . K EXIT | 
|---|
| 110 | E  K:IMREXC'="D" EXIT | 
|---|
| 111 | Q:$G(EXIT) | 
|---|
| 112 | D ^IMRARVRL S:IMRCAT=4 IMRBL="AIDS" | 
|---|
| 113 | D STAND,ARVUSE,BYCAT | 
|---|
| 114 | K IMRLR,IMROUT,IMRPTF,IMRRX,IMRRXN,IMRSCH,IMRST,IMRSUF | 
|---|
| 115 | Q | 
|---|
| 116 | STAND Q:IMRSCT'=1 | 
|---|
| 117 | Q:REIM'=1 | 
|---|
| 118 | S ^TMP($J,(VADM(1)),DFN)=VADM(1)_U_$P(VADM(2),U)_U_IMRCAT_U_IMRDOD_U_IMRBL | 
|---|
| 119 | Q | 
|---|
| 120 | ARVUSE Q:REIM'=2 | 
|---|
| 121 | Q:IMRSCT'=1 | 
|---|
| 122 | S:IMRBL="ARV" ^TMP($J,"ARV",IMRBL,(VADM(1)),DFN)=VADM(1)_U_$P(VADM(2),U)_U_IMRCAT_U_IMRDOD | 
|---|
| 123 | S:IMRBL="NOARV" ^TMP($J,"NOARV",IMRBL,(VADM(1)),DFN)=VADM(1)_U_$P(VADM(2),U)_U_IMRCAT_U_IMRDOD | 
|---|
| 124 | S:IMRBL="AIDS" ^TMP($J,"AIDS",IMRBL,(VADM(1)),DFN)=VADM(1)_U_$P(VADM(2),U)_U_IMRCAT_U_IMRDOD | 
|---|
| 125 | Q | 
|---|
| 126 | BYCAT Q:IMRSCT'=2 | 
|---|
| 127 | Q:REIM'=1 | 
|---|
| 128 | S ^TMP($J,IMRCAT,(VADM(1)),DFN)=VADM(1)_U_$P(VADM(2),U)_U_IMRDOD_U_IMRBL | 
|---|
| 129 | Q | 
|---|
| 130 | ; | 
|---|
| 131 | PRTC ; press return to continue | 
|---|
| 132 | S K=0 Q:IMRUT!($D(IO("S"))) | 
|---|
| 133 | I IOST["C-" K DIR W ! S DIR(0)="E" D ^DIR K DIR I 'Y S IMRUT=1 | 
|---|
| 134 | Q | 
|---|
| 135 | HEDR ; report header | 
|---|
| 136 | S IMRPG=IMRPG+1 | 
|---|
| 137 | W:$Y>0 @IOF | 
|---|
| 138 | W !?37,"REGISTRY LIST",!?32,IMRDTE,?70,"Page: ",IMRPG | 
|---|
| 139 | I $G(IMRHED)]"" W !,?(IOM-$L(IMRHED)\2),IMRHED | 
|---|
| 140 | W !,?(IOM-$L(IMRHED(1))\2),IMRHED(1) | 
|---|
| 141 | W:(IMRSCT=1)&(REIM=1) !!,?7,"NAME",?36,"SSN",?47,"CAT",?53,"REIM LEV",?65,"DECEASED",! | 
|---|
| 142 | W:(REIM=2)&(IMRSCT=1) !!,?7,"*REIMB",!,?7,"LEVEL",?16,"NAME",?41,"SSN",?50,"CAT",?60,"DECEASED",! | 
|---|
| 143 | W:(IMRSCT=2)&(REIM=1) !!,?7,"CAT",?16,"NAME",?41,"SSN",?61,"REIM LEV",?71,"DECEASED",! | 
|---|
| 144 | Q | 
|---|