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

PSSOPKI.m

Go to the documentation of this file.
  1. PSSOPKI ;BHAM ISC/MHA-New API's to CPRS for DEA/PKI Pilot Project ;03/11/02
  1. ;;1.0;PHARMACY DATA MANAGEMENT;**61,69**;9/30/97
  1. ;Reference to ^PSNDF(50.68 supported by DBIA 3735
  1. ;
  1. OIDEA(PSSXOI,PSSXOIP) ; CPRS Orderable Item call
  1. ;returns the CS Federal Schedule code in the VA PRODUCT file (#50.68)
  1. ;or the DEA Special Hndl code depending on the "ND" node of the
  1. ;drugs associated to the Orderable Item, and Usage passed in
  1. ;1 Sch. I Nar.
  1. ;2 II
  1. ;2n II Non-Nar.
  1. ;3 III
  1. ;3n III Non-Nar.
  1. ;4 IV
  1. ;5 V
  1. ;0 there are other active drugs
  1. ;"" no active drugs
  1. ;
  1. N PSSXOLP,PSSXOLPD,PSSXOLPX,PSSXNODD,PSSPKLX,PSSI,PSSK,PSSJ,PSSGD
  1. S (PSSXOLPD,PSSXNODD)=0 I PSSXOIP="X" G OIQ
  1. I '$G(PSSXOI)!($G(PSSXOIP)="") G OIQ
  1. S PSSPKLX=$S(PSSXOIP="I":1,PSSXOIP="U":1,1:0)
  1. F PSSXOLP=0:0 S PSSXOLP=$O(^PSDRUG("ASP",PSSXOI,PSSXOLP)) Q:'PSSXOLP D
  1. .I $P($G(^PSDRUG(PSSXOLP,"I")),"^"),$P($G(^("I")),"^")<DT Q
  1. .I 'PSSPKLX,$P($G(^PSDRUG(PSSXOLP,2)),"^",3)'["O" Q
  1. .I PSSPKLX I $P($G(^PSDRUG(PSSXOLP,2)),"^",3)'["U",$P($G(^(2)),"^",3)'["I" Q
  1. .S PSSXNODD=1,PSSJ=($P($G(^PSDRUG(PSSXOLP,0)),"^",3)) S:PSSJ]"" PSSGD(PSSJ)=""
  1. .I +$P($G(^PSDRUG(PSSXOLP,"ND")),"^",3) S PSSK=$P(^("ND"),"^",3) D
  1. ..I +$P($G(^PSNDF(50.68,PSSK,7)),"^") S PSSK=$P(^(7),"^"),PSSI($S($E(PSSK,2)="n":$E(PSSK)_".5",1:PSSK))=""
  1. G:$O(PSSI(""))]"" CSS
  1. S PSSXOLPX="" F S PSSXOLPX=$O(PSSGD(PSSXOLPX)) Q:PSSXOLPX="" D
  1. .I PSSXOLPX[1 S PSSI(1)="" Q
  1. .I PSSXOLPX[2,PSSXOLPX'["C" S PSSI(2)="" Q
  1. .I PSSXOLPX[2,PSSXOLPX["C" S PSSI(2.5)="" Q
  1. .I PSSXOLPX[3,PSSXOLPX'["C" S PSSI(3)="" Q
  1. .I PSSXOLPX[3,PSSXOLPX["C" S PSSI(3.5)="" Q
  1. .I PSSXOLPX[4 S PSSI(4)="" Q
  1. .I PSSXOLPX[5 S PSSI(5)=""
  1. CSS S PSSK=0 S PSSK=$O(PSSI(PSSK)) I PSSK S PSSXOLPD=$E(PSSK)_$S($L(PSSK)>1:"n",1:"")
  1. OIQ I PSSXOLPD=0 S:'PSSXNODD PSSXOLPD=""
  1. I +PSSXOLPD=1!(+PSSXOLPD=2) S PSSXOLPD=1_";"_PSSXOLPD
  1. I +PSSXOLPD=3!(+PSSXOLPD=4)!(+PSSXOLPD=5) S PSSXOLPD=2_";"_PSSXOLPD
  1. Q PSSXOLPD
  1. ;
  1. DEAPKI(PSSDIENM) ;Return CS Federal Sch or the DEA Special Hndl for CPRS Dose Call - PKI Project
  1. Q:'$G(PSSDIENM)
  1. N PSSDEAX,PSSDEAXV,PSSJ
  1. I +$P($G(^PSDRUG(PSSDIENM,"ND")),"^",3) S PSSDEAX=$P(^("ND"),"^",3) D
  1. .I +$P($G(^PSNDF(50.68,PSSDEAX,7)),"^") S PSSDEAXV=$P(^(7),"^"),PSSJ=1
  1. G:$G(PSSJ) DSET
  1. S PSSDEAX=$P($G(^PSDRUG(PSSDIENM,0)),"^",3)
  1. I PSSDEAX[1 S PSSDEAXV=1 G DSET
  1. I PSSDEAX[2,PSSDEAX'["C" S PSSDEAXV=2 G DSET
  1. I PSSDEAX[2,PSSDEAX["C" S PSSDEAXV="2n" G DSET
  1. I PSSDEAX[3,PSSDEAX'["C" S PSSDEAXV=3 G DSET
  1. I PSSDEAX[3,PSSDEAX["C" S PSSDEAXV="3n" G DSET
  1. I PSSDEAX[4 S PSSDEAXV=4 G DSET
  1. I PSSDEAX[5 S PSSDEAXV=5 G DSET
  1. S PSSDEAXV=0
  1. DSET ;
  1. I +PSSDEAXV=1!(+PSSDEAXV=2) S PSSDEAXV=1_";"_PSSDEAXV
  1. I +PSSDEAXV=3!(+PSSDEAXV=4)!(+PSSDEAXV=5) S PSSDEAXV=2_";"_PSSDEAXV
  1. S PSSX("DD",PSSDIENM)=PSSX("DD",PSSDIENM)_"^"_PSSDEAXV_"^"_$S($D(PSSHLF(PSSDIENM)):1,1:0)
  1. Q