PSNAPIS ;BIR/DMA-APIs for NDF ; 07/02/03 14:07 ;;4.0; NATIONAL DRUG FILE;**2,3,47,70**; 30 Oct 98 ; ;Reference to ^PSDRUG supported by DBIA #2192 ;Reference to ^PS(50.606 supported by DBIA #2174 ; PSA(NDC,LIST) ;ENTRY FOR DRUG ACCOUNTABILITY N Y,PN,PN1,P50,J S Y=$Q(^PSNDF(50.67,"NDC",NDC)) I $QS(Y,3)'=NDC Q 0 S Y=^PSNDF(50.67,$QS(Y,4),0),Y=$P(Y,"^",6),PN=$P(^PSNDF(50.68,Y,0),"^"),PN1=$E(PN,1,30) S P50=0,J=0 F S P50=$O(^PSDRUG("VAPN",PN1,P50)) Q:'P50 I $P(^PSDRUG(P50,"ND"),"^",2)=PN S LIST(P50)=$P(^PSDRUG(P50,0),"^"),J=J+1 Q J ; PSJING(DA1,K,LIST) ;ENTRY FOR INGREDIENTS N X,CT ;DA1 IS SUPERFLUOUS, BUT WE LEAVE IN FOR COMPATABILITY I 'K!('$D(^PSNDF(50.68,+K))) Q 0 S DA=0 F CT=0:1 S DA=$O(^PSNDF(50.68,K,2,DA)) Q:'DA S X=^(DA,0),LIST(+X)=+X_"^"_$P(^PS(50.416,+X,0),"^")_"^"_$P(X,"^",2)_"^" S:$P(X,"^",3)]"" LIST(+X)=LIST(+X)_$P($G(^PS(50.607,$P(X,"^",3),0)),"^") Q CT ; PSJDF(DA,K) ;GET DOSE FORM N X,DF ;AGAIN DA IS SUPERFLUOUS I 'K!('$D(^PSNDF(50.68,+K))) Q 0 S X=$P(^PSNDF(50.68,K,0),"^",3),DF=$P($G(^PS(50.606,X,0)),"^") Q X_"^"_DF ; PSJST(DA,K) ;ENTRY FOR STRENGTH I 'K!('$D(^PSNDF(50.68,K))) Q 0 Q 1_"^"_$P(^PSNDF(50.68,K,0),"^",4) ; CLASS(CL) ;ENTRY FOR OE/RR TO GET CLASS $D I CL']"" Q 0 Q $D(^PS(50.605,"C",CL))>0 ; DRUG(DA) ;ENTRY FOR OE/RR TO GET DRUG $D I DA']"" Q 0 Q $D(^PSNDF(50.6,"B",DA))!$D(^PSNDF(50.67,"T",DA)) ; PROD0(P1,P2) ;GET INFO IN THE FORM OF THE OLD 0 PRODUCT NODE N A,B ;P1 IS SUPERFLUOUS I P2']"" Q "" S A=$G(^PSNDF(50.68,P2,0)),B=$G(^(1)) Q $P(A,"^")_"^"_$P(A,"^",3,5)_"^^^"_$P(B,"^",5,6) ; PROD2(P1,P2) ;GET OLD 2 NODE ;P1 STILL SUPERFLUOUS I P2']"" Q "" Q $P($G(^PSNDF(50.68,P2,1)),"^",1,3)_"^"_$P($G(^PSNDF(50.64,+$P(^PSNDF(50.68,P2,1),"^",4),0)),"^") ; DCLASS(DA,K) ;GET CLASS FOR PRODUCT I K']"" Q "" S X=+$P($G(^PSNDF(50.68,+K,3)),"^"),Y=$P($G(^PS(50.605,X,0)),"^",2) Q X_"^"_Y ; DCLCODE(DA,K) ;RETURN VA CLASS CODE I K']"" Q "" S X=+$P($G(^PSNDF(50.68,+K,3)),"^"),X=$P($G(^PS(50.605,X,0)),"^") Q X ; ;DA IS SUPERFLUOUS VAGN(DA) ;GET VA GENERIC NAME I 'DA!'$D(^PSNDF(50.6,+DA,0)) Q 0 Q $P(^PSNDF(50.6,+DA,0),"^") ; FORMI(DA,K) ;GET FORMULARY INDICATOR FOR VA PRODUCT ;DA IS SUPERFLUOUS ;1 if yes, 0 if no, null if not entered Q $P($G(^PSNDF(50.68,+K,5)),"^") ; FORMR(DA,K) ;GET EXISTENCE OF FORMULARY RESTRICTIONS ;DA IS SUPERFLUOUS Q $O(^PSNDF(50.68,+K,6,0))]"" ; DFSU(DA,K) ;RETURN DOSE FORM, STRENGTH, AND UNITS FOR PDM AND CPRS N U1,UN I 'K!('$D(^PSNDF(50.68,+K,0))) Q 0 S U1=+$P(^PSNDF(50.68,+K,0),"^",5),UN=$P($G(^PS(50.607,U1,0)),"^") Q $$PSJDF(DA,K)_"^"_$$PSJST(DA,K)_"^"_U1_"^"_UN ; VAP(DA,LIST) ;GIVEN GENERIC RETURN ARRAY LIST(IEN)=IEN^PRODUCT^DF PTR^DOSE FOMR N PR,J,X I 'DA!'$D(^PSNDF(50.6,+DA)) Q 0 S PR=0,J=0 F S PR=$O(^PSNDF(50.6,"APRO",DA,PR)) Q:'PR S X=^PSNDF(50.68,PR,0),DAT=$P($G(^(7)),"^",3) D .S LIST(PR)=PR_"^"_$P(X,"^")_"^"_$P(X,"^",3)_"^"_$P($G(^PS(50.606,+$P(X,"^",3),0)),"^")_"^"_$P(^PSNDF(50.68,PR,3),"^")_"^"_$P($G(^PS(50.605,+$P(^PSNDF(50.68,PR,3),"^"),0)),"^"),J=J+1 I DAT,(DAT