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

PSJORAPI.m

Go to the documentation of this file.
  1. PSJORAPI ;BIR/LDT-API utility routine ;7/8/00
  1. ;;5.0; INPATIENT MEDICATIONS ;**48**;16 DEC 1997
  1. ;
  1. ; Reference to ^PSDRUG is supported by DBIA 2192.
  1. ; Reference to ^PS(52.6 is supported by DBIA 1231.
  1. ; Reference to ^PS(52.7 is supported by DBIA 2173.
  1. ; Reference to ^PS(55 is supported by DBIA 2191.
  1. ;
  1. EN(PSJB,PSJE,PSJX,PSJDT,PSJN) ;
  1. ;PSJB - begin date
  1. ;PSJE - end date
  1. ;PSJX - medication array
  1. ;PSJDT - fill date (not used by Inaptient)
  1. ;PSJN - node subscript
  1. ;
  1. N PSJRD,PSJDRG,PSJND,PSJPDFN,PSJCX,PSJMED1,PSJMED2,PSJDNM,PSJBEG,PSJEND,PSJSTRT,PSJSTP
  1. Q:'$G(PSJB)!('$G(PSJE))
  1. Q:$G(PSJN)=""
  1. K ^TMP(PSJN,$J),^TMP($J,"PSJCT")
  1. UD ;Check for Unit Dose orders
  1. N PSJND2,PSJORD,PSJDDRG
  1. S PSJBEG=PSJB-.0001,PSJEND=PSJE+.999999
  1. F S PSJBEG=$O(^PS(55,"AUDS",PSJBEG)) Q:'PSJBEG!(PSJBEG>PSJEND) S PSJPDFN=0 F S PSJPDFN=$O(^PS(55,"AUDS",PSJBEG,PSJPDFN)) Q:'PSJPDFN D
  1. . S PSJORD=0 F S PSJORD=$O(^PS(55,"AUDS",PSJBEG,PSJPDFN,PSJORD)) Q:'PSJORD D
  1. .. S PSJND2=$G(^PS(55,PSJPDFN,5,PSJORD,2)),PSJSTRT=$P(PSJND2,"^",2),PSJSTP=$P(PSJND2,"^",4)
  1. .. S PSJDDRG=0 F S PSJDDRG=$O(^PS(55,PSJPDFN,5,PSJORD,1,PSJDDRG)) Q:'PSJDDRG S PSJDRG=+$G(^PS(55,PSJPDFN,5,PSJORD,1,PSJDDRG,0)),PSJND=+$G(^PSDRUG(+PSJDRG,"ND")),PSJDNM=$P($G(^(0)),"^") D MED
  1. IV ;Check for IV orders
  1. N PSJND0,PSJORD,PSJDDRG,FIL,DRG,DRGTYP
  1. S PSJBEG=PSJB-.0001,PSJEND=PSJE+.999999
  1. F S PSJBEG=$O(^PS(55,"AIVS",PSJBEG)) Q:'PSJBEG!(PSJBEG>PSJEND) S PSJPDFN=0 F S PSJPDFN=$O(^PS(55,"AIVS",PSJBEG,PSJPDFN)) Q:'PSJPDFN D
  1. . S PSJORD=0 F S PSJORD=$O(^PS(55,"AIVS",PSJBEG,PSJPDFN,PSJORD)) Q:'PSJORD D
  1. .. S PSJND0=$G(^PS(55,PSJPDFN,"IV",PSJORD,0)),PSJSTRT=$P(PSJND0,"^",2),PSJSTP=$P(PSJND0,"^",3)
  1. .. F DRGTYP="AD","SOL" F DRG=0:0 S DRG=$O(^PS(55,PSJPDFN,"IV",PSJORD,DRGTYP,DRG)) Q:'DRG D
  1. ... S PSJDDRG=+$G(^PS(55,PSJPDFN,"IV",PSJORD,DRGTYP,DRG,0)),FIL=$S(DRGTYP="AD":52.6,1:52.7),PSJDRG=$P($G(^PS(FIL,+PSJDDRG,0)),"^",2),PSJND=+$G(^PSDRUG(+PSJDRG,"ND")),PSJDNM=$P($G(^(0)),"^") D MED
  1. G END
  1. Q
  1. ;
  1. MED ;Check medication array for matches
  1. K PSJMED1,PSJMED2,PSJMED3
  1. I $D(PSJX(PSJDRG_";PSDRUG(")) S PSJMED1=1 D MEDS Q
  1. I $G(PSJND),$D(PSJX(PSJND_";PSNDF(50.6,")) S PSJMED2=1 D MEDS Q
  1. ;Here, add class check when ready, use PSJMED2 for NDF, default to 1 for VA Class in MEDS
  1. Q
  1. MEDS I $D(^TMP($J,"PSJCT",PSJPDFN)) S (PSJCX,^TMP($J,"PSJCT",PSJPDFN))=^TMP($J,"PSJCT",PSJPDFN)+1
  1. I '$D(^TMP($J,"PSJCT",PSJPDFN)) S (PSJCX,^TMP($J,"PSJCT",PSJPDFN))=1
  1. S ^TMP(PSJN,$J,PSJPDFN,PSJCX,0)=$S($G(PSJMED1):PSJDRG_";PSDRUG(",1:$G(PSJND)_";PSNDF(50.6,")
  1. S ^TMP(PSJN,$J,PSJPDFN,PSJCX,1)=$G(PSJSTRT)_"^^"_$G(PSJDNM)_"^^"_$G(PSJSTP)
  1. Q
  1. END ;
  1. K ^TMP($J,"PSJCT")
  1. Q