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

PSSP176.m

Go to the documentation of this file.
  1. PSSP176 ;DAL/RJS-PSS*1.0*176 PRE INSTALL ROUTINE
  1. ;;1.0;PHARMACY DATA MANAGEMENT;**176**;9/30/97;Build 3
  1. ;;
  1. ;;Reference to ^DDMOD is supported by DBIA# 2916.
  1. ;;
  1. Q
  1. PREINT ; PRE INSTALL ENTRY POINT.
  1. D BMES^XPDUTL("PSS*1*176 PRE INSTALL STARTED!")
  1. D DELIX^DDMOD(50,13,1),DELIX^DDMOD(50,15,1)
  1. N PSSDRG,PSSNAME,PSSDEA,PSSNDC,PSSKEYN,PSSCNT,PSSTMP,PSSSITE,X1,X2,X
  1. S X1=DT,X2=180 D C^%DTC S ^XTMP("PSSP176",0)=X_"^"_DT_"^PSDRUG NDCOP BACKUP" ;; STORE NDCOP DATA FOR 180 DAYS
  1. K ^TMP("PSSDRUG",$J),^TMP("PSSTEXT",$J)
  1. S (PSSDRG,PSSCNT)=0
  1. F PSSDRG=0:0 S PSSDRG=$O(^PSDRUG(PSSDRG)) Q:'PSSDRG D CKDEA
  1. D MAIL
  1. K PSSDRG,PSSNAME,PSSDEA,PSSNDC,PSSKEYN,PSSCNT,PSSTMP,PSSSITE,PSSTXLN,PSSDSH,PSSDATA,XMTEXT
  1. D BMES^XPDUTL("PSS*1*176 PRE INSTALL COMPLETE!")
  1. Q
  1. CKDEA ;Check each drug in the Drug file for non E PAYABLE drugs.
  1. S PSSDEA=""
  1. S PSSDEA=$$GET1^DIQ(50,PSSDRG,3)
  1. I PSSDEA="" D CKNDC Q
  1. I $G(PSSDEA)["M"!($G(PSSDEA)["0") D CKNDC Q
  1. I $G(PSSDEA)'["E" D
  1. .I $G(PSSDEA)["S"!($G(PSSDEA)["I")!($G(PSSDEA)["9") D CKNDC Q
  1. Q
  1. CKNDC ;If a drug is non e-billable remove the NDC BY OUTPATIENT SITE multiple from the drug file
  1. Q:'$D(^PSDRUG(PSSDRG,"NDCOP",0))
  1. I '$O(^PSDRUG(PSSDRG,"NDCOP",0)) K ^PSDRUG(PSSDRG,"NDCOP") Q
  1. S PSSNAME=$$GET1^DIQ(50,PSSDRG,.01)
  1. S PSSNDC=$$GET1^DIQ(50,PSSDRG,31)
  1. I PSSNDC="" S PSSNDC="NO NDC"
  1. I PSSDEA="" S PSSDEA="NO DEA"
  1. S PSSCNT=PSSCNT+1
  1. S ^TMP("PSSDRUG",$J,PSSCNT)=PSSDRG_"^"_$E(PSSNAME,1,40)_"^"_PSSNDC_"^"_PSSDEA D XTMP
  1. K ^PSDRUG(PSSDRG,"NDCOP")
  1. Q
  1. MAIL ;Set up mail message
  1. S XMDUZ="PSS*1*176 INCORRECT DRUG COST IN OUTPATIENT RX",XMSUB="WRONG NDC BY OUTPATIENT SITE"
  1. F PSSKEYN=0:0 S PSSKEYN=$O(^XUSEC("PSNMGR",PSSKEYN)) Q:'PSSKEYN S XMY(PSSKEYN)=""
  1. S XMY(DUZ)=""
  1. S PSSDSH="",PSSCTR=0
  1. F PSSCTR=1:1:79 S PSSDSH=PSSDSH_"-"
  1. S ^TMP("PSSTEXT",$J,1)="The following is a list of drugs where the NDC by OUTPATIENT"
  1. S ^TMP("PSSTEXT",$J,2)=" SITE multiple has been removed."
  1. S ^TMP("PSSTEXT",$J,3)=""
  1. S ^TMP("PSSTEXT",$J,4)="No action is needed to be taken on these entries, unless the assigned"
  1. S ^TMP("PSSTEXT",$J,5)=" DEA Special Handling designation appears incorrect."
  1. S ^TMP("PSSTEXT",$J,6)=""
  1. S ^TMP("PSSTEXT",$J,7)="Total number of drug files modified = "_$S(PSSCNT=0:"(None modified)",1:PSSCNT)
  1. S ^TMP("PSSTEXT",$J,8)=""
  1. S PSSTXLN=9
  1. I $D(^TMP("PSSDRUG",$J)) D
  1. .S ^TMP("PSSTEXT",$J,PSSTXLN)="",PSSTXLN=PSSTXLN+1
  1. .S ^TMP("PSSTEXT",$J,PSSTXLN)="DRUG IEN DEA",PSSTXLN=PSSTXLN+1
  1. .S ^TMP("PSSTEXT",$J,PSSTXLN)=" GENERIC NAME NDC SPECIAL HDLG",PSSTXLN=PSSTXLN+1
  1. .S ^TMP("PSSTEXT",$J,PSSTXLN)=PSSDSH,PSSTXLN=PSSTXLN+1
  1. .F PSSCNT=0:0 S PSSCNT=$O(^TMP("PSSDRUG",$J,PSSCNT)) Q:'PSSCNT D
  1. ..S PSSDATA=$G(^TMP("PSSDRUG",$J,PSSCNT))
  1. ..S ^TMP("PSSTEXT",$J,PSSTXLN)=$P(PSSDATA,"^",1),PSSTXLN=PSSTXLN+1
  1. ..S PSSTXT="" D TXT($P(PSSDATA,"^",2),2),TXT($P(PSSDATA,"^",3),48),TXT($P(PSSDATA,"^",4),66)
  1. ..S ^TMP("PSSTEXT",$J,PSSTXLN)=PSSTXT,PSSTXLN=PSSTXLN+1
  1. I '$D(^TMP("PSSDRUG",$J)) S ^TMP("PSSTEXT",$J,PSSTXLN)=PSSDSH,PSSTXLN=PSSTXLN+1
  1. S ^TMP("PSSTEXT",$J,PSSTXLN)="",PSSTXLN=PSSTXLN+1,^TMP("PSSTEXT",$J,PSSTXLN)=" *** End of Report ***"
  1. S XMTEXT="^TMP(""PSSTEXT"",$J," N DIFROM D ^XMD K XMSUB,XMTEST,XMY,XMDUZ
  1. K ^TMP("PSSTEXT",$J),^TMP("PSSDRUG",$J),PSSTXT,PSSCTR
  1. Q
  1. TXT(PSSVAL,PSSCAL) S:'$D(PSSTXT) PSSTXT="" S PSSTXT=$$SETSTR^VALM1(PSSVAL,PSSTXT,PSSCAL,$L(PSSVAL))
  1. Q
  1. XTMP ; BUILD A BACKUP OF THE REMOVED DATA
  1. N PSS1
  1. S ^XTMP("PSSP176",PSSDRG,"NDCOP",0)=^PSDRUG(PSSDRG,"NDCOP",0)
  1. S PSS1=0 F S PSS1=$O(^PSDRUG(PSSDRG,"NDCOP",PSS1)) Q:'PSS1 S ^XTMP("PSSP176",PSSDRG,"NDCOP",PSS1)=^PSDRUG(PSSDRG,"NDCOP",PSS1,0)
  1. Q