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

BHSPSO7A.m

Go to the documentation of this file.
  1. BHSPSO7A ; IHS/MSC/MGH - Health summary selected for medications ;27-Oct-2009 13:39;MGH
  1. ;;1.0;HEALTH SUMMARY COMONENTS;**3**;March 17,2006
  1. ;This component allows a user to use selected drugs. The routine will include any
  1. ;drugs in the VA generic finding for the drugs included
  1. ; External References
  1. ; DBIA 60 ^PSOHCSUM
  1. ; DBIA 522 ^PS(55,
  1. ; DBIA 10035 ^DPT( file #2
  1. ; DBIA 3136 ^PS(59.7,
  1. ; DBIA 10011 ^DIWP
  1. ;
  1. MAIN ; OP Rx HS Component
  1. N ECD,NDF,DRUG,GENERIC,GMTSEL,GMR,IX,PSOBEGIN,PSOACT,GMX,GMTOP,MEDSEG
  1. S PSOBEGIN=$S(GMTS2'=9999999:(9999999-GMTS2),1:"")
  1. I PSOBEGIN="" S PSOACT=1 K PSOBEGIN
  1. K ^TMP("BHS",$J)
  1. Q:$O(GMTSEG(GMTSEGN,50,0))'>0
  1. S GMTSEL=0
  1. F S GMTSEL=$O(GMTSEG(GMTSEGN,50,GMTSEL)) Q:'GMTSEL D
  1. .S DRUG=$G(GMTSEG(GMTSEGN,50,GMTSEL))
  1. .S MEDSEG(DRUG)=""
  1. .S NDF=$P($G(^PSDRUG(DRUG,"ND")),U,1)
  1. .I NDF'="" S GENERIC(NDF)=""
  1. I '$D(^PS(55,DFN,"P")),'$D(^("ARC")) Q
  1. I '$O(^PS(55,DFN,"P",0)),$D(^PS(55,DFN,"ARC")) D CKP^GMTSUP Q:$D(GMTSQIT) W "Patient Has Archived OP Prescriptions",!
  1. D SEL^BHSPOS(.MEDSEG) I '$D(^TMP("BHS",$J)) Q
  1. S GMTSLO=GMTSLO+3
  1. S (GMTOP,GMX,IX)=0
  1. F S IX=$O(^TMP("BHS",$J,IX)) Q:IX'>0 S GMR=$G(^(IX,0)) D WRT
  1. S GMTSLO=GMTSLO-3
  1. K ^TMP("BHS",$J),^UTILITY($J,"W")
  1. Q
  1. WRT ; Writes OP Pharmacy Segment Record
  1. N ID,LFD,X,MI,NL,CF,GMD,GMV,GMI,DIWL,DIWR,DIWF,GMSIG,GUI S GUI=$$HF^GMTSU
  1. S ID=$P(GMR,U),LFD=$P(GMR,U,2),ECD=$P(GMR,U,11),CF=$P(GMR,U,10)
  1. ; Don't display when issue date is after To Date
  1. Q:+$G(GMRANGE)&(ID>(9999999-GMTS1))
  1. F GMV="ID","LFD","ECD" S X=@GMV D REGDT4^GMTSU S @GMV=X K X
  1. S NL=0,DIWL=1,DIWR=73,DIWF="" K ^UTILITY($J,"W")
  1. F S NL=$O(^TMP("BHS",$J,IX,NL)) Q:NL'>0 D
  1. . S X=$G(^TMP("BHS",$J,IX,NL,0)) D ^DIWP
  1. S GMD=$P($P(GMR,U,4),";",2)
  1. D CKP^GMTSUP Q:$D(GMTSQIT)
  1. D:GMTSNPG!(GMX'>0) HEAD W:'GMTOP ! S GMTOP=0 W $P($P(GMR,U,3),";",2)
  1. W !,?22,$P(GMR,U,6),?35,$P($P(GMR,U,5),";"),?39,$P(GMR,U,7),?54,ID,?65,LFD,?76,"("_$P(GMR,U,8)_")",!
  1. S GMX=1,GMI=0,GMSIG=1
  1. F S GMI=$O(^UTILITY($J,"W",DIWL,GMI)) Q:GMI'>0!$D(GMTSQIT) D
  1. . D CKP^GMTSUP Q:$D(GMTSQIT) D:GMTSNPG HEAD
  1. . S MI=$G(^UTILITY($J,"W",DIWL,GMI,0))
  1. . W:GMSIG=1 ?2,"SIG: " S:GMSIG=1 GMSIG=0 W ?7,MI,! S GMTOP=0
  1. D CKP^GMTSUP Q:$D(GMTSQIT) D:GMTSNPG HEAD W ?4,"Provider: ",$E(GMD,1,22) W:CF ?37,"Cost/Fill: $",$J(CF,6,2)
  1. I "EC"[$P($P(GMR,U,5),";"),ECD]"" W ?57,"Exp/Can Dt: "_ECD
  1. W ! S GMTOP=0
  1. Q
  1. ; Only write the next line when there is data
  1. S GMTOP=1
  1. I GMX'>0,$D(^DPT(DFN,.1)),^(.1)]"",+($P($G(^PS(59.7,1,40.1)),"^")) D CKP^GMTSUP Q:$D(GMTSQIT) W "Outpatient prescriptions are cancelled 72 hours after admission",!
  1. D CKP^GMTSUP Q:$D(GMTSQIT) W !,"Drug....................................",?65,"Last",!
  1. D CKP^GMTSUP Q:$D(GMTSQIT)
  1. W ?22,"Rx #",?34,"Stat",?39,"Qty",?54,"Issued",?65,"Filled",?76,"Rem"
  1. W:$Y'>(IOSL-GMTSLO)!(+($G(GUI))>0) !
  1. Q