| 1 | SPNPSR18 ;HIRMFO/JWR,WAA-HUNT: MEDICATION SEARCH ;3/1/96  14:16 | 
|---|
| 2 | ;;2.0;Spinal Cord Dysfunction;**9**;01/02/1997 | 
|---|
| 3 | ; | 
|---|
| 4 | EN1(D0,FDATE,TDATE,ACTION,SEQUENCE) ; *** Search entry point | 
|---|
| 5 | ; Input: | 
|---|
| 6 | ;  ACTION,SEQUENCE = Search ACTION,SEQUENCE number | 
|---|
| 7 | ;  D0       = SCD (SPINAL CORD) REGISTRY file (#154) IEN | 
|---|
| 8 | ;  ^TMP($J,"SPNPRT",ACTION,SEQUENCE,"BEGINING DATE") = Date ^ Date(ext) | 
|---|
| 9 | ;  ^TMP($J,"SPNPRT",ACTION,SEQUENCE,"ENDING DATE") = Date ^ Date(ext) | 
|---|
| 10 | ;  ^TMP($J,"SPNPRT",ACTION,SEQUENCE,"DRUG CLASS",IEN) = DRUG CLASS | 
|---|
| 11 | ;      FDATE = Date | 
|---|
| 12 | ;      TDATE = Date | 
|---|
| 13 | ; Output: | 
|---|
| 14 | ;  $S( D0_Meets_Search_Criteria : 1 , 1 : 0 ) | 
|---|
| 15 | ; | 
|---|
| 16 | N AGE,DFN,I,MEETSRCH,VA,VADM,VAERR | 
|---|
| 17 | S (SPNLDFN,DFN)=+$P($G(^SPNL(154,D0,0)),U) | 
|---|
| 18 | ; | 
|---|
| 19 | PHARM S MEETSRCH=0 | 
|---|
| 20 | Q:'$D(ACTION) | 
|---|
| 21 | Q:'$D(SEQUENCE) | 
|---|
| 22 | I '$D(TDATE) S TDATE=DT | 
|---|
| 23 | S EXPDATE=FDATE-.000001,SPNCN1=0 ; for each expiration date | 
|---|
| 24 | F  S EXPDATE=$O(^PS(55,SPNLDFN,"P","A",EXPDATE)) Q:EXPDATE'>0!(EXPDATE>TDATE)!(MEETSRCH=1)  D | 
|---|
| 25 | . S RECNR=0 ; for each prescription on that date | 
|---|
| 26 | . F  S RECNR=$O(^PS(55,SPNLDFN,"P","A",EXPDATE,RECNR)) Q:RECNR'>0!(MEETSRCH=1)  D | 
|---|
| 27 | . . S NDRG=$P($G(^PSRX(RECNR,0)),U,6) Q:NDRG="" | 
|---|
| 28 | . . S NDREC=$P($G(^PSDRUG(NDRG,0)),U,2) D:NDREC'="" | 
|---|
| 29 | . . . S CN="" F  S CN=$O(^TMP($J,"SPNPRT",ACTION,SEQUENCE,"DRUG CLASS",CN)) Q:CN<1  I $P($G(^TMP($J,"SPNPRT",ACTION,SEQUENCE,"DRUG CLASS",CN)),U,2)=NDREC S MEETSRCH=1 Q | 
|---|
| 30 | . . Q | 
|---|
| 31 | . Q | 
|---|
| 32 | K NDRG | 
|---|
| 33 | Q Q MEETSRCH | 
|---|
| 34 | EN2(ACTION,SEQUENCE) ; *** Prompt entry point | 
|---|
| 35 | ; Input: | 
|---|
| 36 | ;  ACTION,SEQUENCE = Search ACTION,SEQUENCE number | 
|---|
| 37 | ;  ^TMP($J,"SPNPRT",ACTION,SEQUENCE,"BEGINING DATE") = Date ^ Date(ext) | 
|---|
| 38 | ;  ^TMP($J,"SPNPRT",ACTION,SEQUENCE,"ENDING DATE") = Date ^ Date(ext) | 
|---|
| 39 | ;  ^TMP($J,"SPNPRT",ACTION,SEQUENCE,"DRUG CLASS",IEN) = | 
|---|
| 40 | ;  ^TMP($J,"SPNPRT",ACTION,SEQUENCE,0)=$$EN1^SPNPSR18(D0,BDATE,EDATE,ACTION,SEQUENCE) | 
|---|
| 41 | ; Output: | 
|---|
| 42 | ;  SPNLEXIT = $S( User_Abort/Timeout : 1 , 1 : 0 ) | 
|---|
| 43 | ; | 
|---|
| 44 | N DIC,DIR,DIRUT,DTOUT,DUOUT,I | 
|---|
| 45 | DIR K ^TMP($J,"SPNPRT",ACTION,SEQUENCE),DIR,DIC | 
|---|
| 46 | S DIC=50.605,DIC(0)="AEMNQZ" K DIRUT | 
|---|
| 47 | I +Y>1 F  D  Q:SPNLEXIT  Q:Y<1 | 
|---|
| 48 | . I $D(DUOUT)!($D(DTOUT)) S SPNLEXIT=1 Q | 
|---|
| 49 | . Q:Y'>0  D ^DIC I Y>0 D | 
|---|
| 50 | .. I $D(^TMP($J,"SPNPRT",ACTION,SEQUENCE,"DRUG CLASS",+Y)) W !,"You have already selected that drug class." Q | 
|---|
| 51 | .. S ^TMP($J,"SPNPRT",ACTION,SEQUENCE,"DRUG CLASS",+Y)=$P($G(^PS(50.605,+Y,0)),U,2)_U_$P(Y,U,2) | 
|---|
| 52 | . S DIR("A")="Another: " | 
|---|
| 53 | . Q | 
|---|
| 54 | Q:SPNLEXIT=1  K DIR | 
|---|
| 55 | S Y=$O(^TMP($J,"SPNPRT",ACTION,SEQUENCE,"DRUG CLASS",0)) | 
|---|
| 56 | Q:Y<1 | 
|---|
| 57 | W !!,"Enter the date range to search for the selected Medications" | 
|---|
| 58 | S (BDATE,EDATE)="" | 
|---|
| 59 | D EN1^SPNPSR00(ACTION,SEQUENCE+.1,.BDATE,.EDATE) | 
|---|
| 60 | S ^TMP($J,"SPNPRT",ACTION,SEQUENCE,0)="$$EN1^SPNPSR18(D0,"_BDATE_","_EDATE_","""_ACTION_""","_SEQUENCE_")" | 
|---|
| 61 | Q | 
|---|