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

APSPORXF.m

Go to the documentation of this file.
  1. APSPORXF ;IHS/DSD/ENM - FUNCTION CALLS FROM PCC ;09-Oct-2008 11:26;SM
  1. ;;7.0;IHS PHARMACY MODIFICATIONS;**1007**;Sep 23, 2004
  1. ;
  1. ;Modified - IHS/MSC/PLS - 05/19/08 - Line MEDS+13
  1. ;function calls from pcc
  1. MEDS(DFN,APSPA,APSPBD,APSPED,APSPSC,APSPVT) ;EP - GET MEDS IN DATE RANGE FOR A PATIENT, SCREEN OPTIONALLY ON SERV CAT OR TYPE
  1. NEW APSPX,APSPDFE,APSPDAT,APSPV,APSPVR,APSPI,APSPC,APSPR,APSPER
  1. S APSPER=0
  1. I 'DFN S APSPER=1 Q APSPER ;no patient
  1. I '$D(^DPT(DFN)) S APSPER=1 Q APSPER ;patient not valid
  1. I $G(APSPA)="" S APSPER=2 Q APSPER ;no array defined
  1. I $G(APSPSC)="" S APSPSC=""
  1. I $G(APSPVT)="" S APSPVT=""
  1. ;set up data fetcher call
  1. S APSPX=DFN_"^ALL MEDS" D
  1. .I APSPED="" S APSPED=DT
  1. .I APSPBD]""!(APSPED]"") S APSPX=APSPX_";DURING "_APSPBD_"-"_APSPED
  1. .Q
  1. ;IHS/MSC/PLS - 05/19/08 - Updated call to PCC
  1. ;S APSPDFE=$$^APCLDF(APSPX,"APSPDAT(")
  1. S APSPDFE=$$START1^APCLDF(APSPX,"APSPDAT(")
  1. I APSPDFE S APSPER=3 Q APSPER ;date fetcher error
  1. I '$D(APSPDAT) Q APSPER
  1. S (APSPX,APSPC)=0 F S APSPX=$O(APSPDAT(APSPX)) Q:APSPX'=+APSPX D
  1. .S APSPV=$P(APSPDAT(APSPX),U,5),APSPVR=^AUPNVSIT(APSPV,0)
  1. .I APSPSC]"",APSPSC'[$P(APSPVR,U,7) Q
  1. .I APSPVT]"",APSPVT'[$P(APSPVR,U,3) Q
  1. .S APSPI=+$P(APSPDAT(APSPX),U,4),APSPR=^AUPNVMED(APSPI,0)
  1. .S A=APSPA_APSPX_")" S @A=APSPI_U_APSPV_U_$P(APSPDAT(APSPX),U)_U_$P(APSPR,U)_U_$P(APSPDAT(APSPX),U,2)
  1. .F X=4:1:8 S @A=@A_U_$P(APSPR,U,X)
  1. .S @A=@A_U_$P($G(^AUPNVSIT(APSPV,21)),U)
  1. .I $G(^AUPNVMED(APSPI,12)) F X=1:1:4 S @A=@A_U_$P(^AUPNVMED(APSPI,12),U,X)
  1. .Q
  1. Q APSPER
  1. ;
  1. START ;EP called from option to display all outside Rx/s
  1. W:$D(IOF) @IOF
  1. W !!?18,"DISPLAY OUTSIDE RX's",!!
  1. GETPAT ;
  1. D GETPAT^APSPORXA ; get patient
  1. I 'DFN D EXIT Q
  1. GETDATES ;
  1. BD ;get beginning date
  1. W ! S DIR(0)="D^:DT:EP",DIR("A")="Enter beginning Date for Rx display" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) G GETPAT
  1. S APSPBD=Y
  1. ED ;get ending date
  1. W ! S DIR(0)="D^"_APSPBD_":DT:EP",DIR("A")="Enter ending Date for Rx display" S Y=APSPBD D DD^%DT S DIR("B")=Y,Y="" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) G BD
  1. S APSPED=Y
  1. ;
  1. GETMEDS ; get vmeds to display
  1. K APSPQUIT
  1. S APSPERR=$$MEDS(DFN,"APSPORX(",APSPBD,APSPED,"E")
  1. I APSPERR W !!,$C(7),$C(7),"Error occurred when attempting to find outside Rx's!! Notify supervisor" D PAUSE G EXIT
  1. I '$D(APSPORX) W !!,$C(7),"No Outside Rx's on file for ",$P(^DPT(DFN,0),U),!,"in that time period",! D PAUSE G GETPAT
  1. S APSPPG=0 D HEAD
  1. S APSPY=0 F S APSPY=$O(APSPORX(APSPY)) Q:APSPY'=+APSPY!($D(APSPQUIT)) S X=APSPORX(APSPY) D
  1. .I $Y>(IOSL-4) D HEAD Q:$D(APSPQUIT)
  1. .;W !!,APSPY,")",?5,"Drug Name: ",?23,$S($P(X,U,5)]"":$P(X,U,5),1:$P(X,U,4))
  1. .W !!,APSPY,")",?5,"Drug Name: ",?23,$S($P(X,U,6)]"":$P(X,U,6),1:$P(X,U,5)) ;IHS/DSD/ENM 01/06/98 OKCAO POC 12/15/97
  1. .W !?5,"Where Dispensed: ",?21,$P(X,U,11)
  1. .W !?5,"Sig:",?23,$P(X,U,7) ;IHS/DSD/ENM 09/06/96 CHNG 5 TO A 7
  1. .W !?5,"Quantity:",?23,$P(X,U,8),?40,"Days Prescribed:",?58,$P(X,U,9) ;IHS/DSD/ENM 09/06/96 CHNG 6 TO 8, 7 TO 9
  1. .W !?5,"DATE PRESCRIBED: ",$$FMTE^XLFDT($P(X,U,3)) ;IHS/DSD/ENM/POC 05/11/98
  1. .Q
  1. I '$D(APSPQUIT) S DIR("A")="End of Display. Hit return to continue" D PAUSE
  1. D EXIT
  1. Q
  1. ;
  1. PAUSE ;
  1. W ! S DIR(0)="E" D ^DIR K DIR W !
  1. Q
  1. I 'APSPPG G HEAD1
  1. I $E(IOST)="C",IO=IO(0) W ! S DIR(0)="EO" D ^DIR K DIR I Y=0!(Y="^")!($D(DTOUT)) S APSPQUIT="" Q
  1. HEAD1 ;
  1. W:$D(IOF) @IOF W !,"Outside Rx's for ",$P(^DPT(DFN,0),U)," from ",! S Y=APSPBD D DD^%DT W Y S Y=APSPED D DD^%DT W " to ",Y,":"
  1. S APSPPG=APSPPG+1
  1. Q
  1. EXIT ;
  1. K APSPBD,APSPED,APSPERR,APSPPG,APSPORX,APSPQUIT,APSPER,APSPY
  1. K X,Y,%DT,DIR
  1. D KILL^AUPNPAT
  1. Q