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

APSAWP11.m

Go to the documentation of this file.
  1. APSAWP11 ;IHS/ITSC/ENM/POC - ACQUISITION COST FILE READ ;12-Feb-2008 15:59;SM
  1. ;;7.0;IHS PHARMACY MODIFICATIONS;**1006**; Sep 23, 2004
  1. ;THIS RTN READS IN A LOCAL ACTUAL ACQUISTION COST FILE TO THE GLOBAL ^APSAMDF IHS/OKCAO/POC 11/11/2002
  1. ; Modified - IHS/MSC/PLS - 09/06/07 - Add changes from Pawhuska for McKesson support
  1. ;
  1. EN1(APSPPATH,APSPFILE) ;
  1. S ZTQUEUED=1 ;IF COMING FROM EN1 SET VARIABLE TO CALL SILENTLY
  1. EN ;ENTRY POINT TO IMPORT ACTUAL ACQUISTION COST FILE
  1. ;CALLED BY OPTION APSQ IMPORT AAC
  1. L +^TMP("APSAWP11",$J):3 I '$T W:'$D(ZTQUEUED) !,"CAN'T LOCK-IS SOMEONE ELSE RUNNING THIS OPTION?" Q
  1. I '$D(^APSAMDF) L -^TMP("APSAWP11",$J) Q
  1. K ^TMP("APSAWP11",$J)
  1. D CLEAN
  1. W:'$D(ZTQUEUED) !,"THIS OPTION WILL IMPORT ACTUAL ACQUISTION COST INTO THE AWP MED TRANSACTION FILE"
  1. I '$D(ZTQUEUED) W:$D(^APSAMDF("DATEACC")) !,"LAST IMPORT ON DATE ",$$FMTE^XLFDT(^("DATEACC"),1)
  1. I '$D(ZTQUEUED) S Y=$$DIR("Y","DO YOU WISH TO CONTINUE","YES") ;DIR(0),DIR("A"),DIR("B")
  1. I '$D(ZTQUEUED) I Y'=1 D CLEAN Q
  1. S APSAOS=$P($G(^AUTTSITE(1,0)),"^",21)
  1. S APSAPATH=$S($P($G(^AUTTSITE(1,1)),"^",1)]"":$P(^(1),"^",1),APSAOS=1:"/pub",APSAOS=2:"C:\INETPUB\FTPROOT\PUB",$D(APSPPATH):APSPPATH,1:"")
  1. I '$D(ZTQUEUED) S Y=$$DIR("F^3:60","ENTER THE PATH TO THE ACTUAL ACQUISTION FILE",APSAPATH)
  1. I '$D(ZTQUEUED) I Y="^" D CLEAN Q
  1. I '$D(ZTQUEUED) S APSAPATH=Y
  1. I APSAOS=1,$E(APSAPATH,$L(APSAPATH))'="/" S APSAPATH=APSAPATH_"/"
  1. I APSAOS=2,$E(APSAPATH,$L(APSAPATH))'="\" S APSAPATH=APSAPATH_"\"
  1. ;
  1. S APSAFILE=$S($D(APSPFILE):APSPFILE,1:"")
  1. I '$D(ZTQUEUED) S Y=$$DIR("F^3:30","ENTER THE NAME OF THE ACTUAL ACQUISTION FILE",APSAFILE)
  1. I '$D(ZTQUEUED) I Y="^" D CLEAN Q
  1. I '$D(ZTQUEUED) S APSAFILE=Y
  1. S Y=$$LIST^%ZISH(APSAPATH,APSAFILE,.APSAGOT)
  1. S Y=$$CHECK
  1. I Y'=1 D CLEAN Q
  1. S Y=$$OPEN^%ZISH(APSAPATH,APSAFILE,"R")
  1. I Y'=0 W:'$D(ZTQUEUED) !,"HMM... CAN'T OPEN THIS FILE... HELP" D CLEAN Q
  1. D FLETCH
  1. D CLOSE(IO)
  1. S ^APSAMDF("DATEACC")=DT
  1. D:'$D(ZTQUEUED) REP
  1. D CLEAN
  1. L -^TMP("APSAWP11",$J) ;UNLOCK
  1. Q
  1. DIR(O,A,B) ;
  1. S DIR(0)=O,DIR("A")=A,DIR("B")=B
  1. D ^DIR
  1. I $D(DTIOUT)!($D(DUOUT))!($D(DIRUT))!($D(DIROUT)) Q "^"
  1. Q Y
  1. ;
  1. CLEAN ;
  1. D EN^XBVK("APSA")
  1. K PAGE,END,LINE,DRUGIEN,TMPIEN,APSAIEN
  1. K DIR,DIC,DIE
  1. Q
  1. ;
  1. CHECK() ;CHECK FOR ONLY ONE FILE (THAT'S NOT NONE OR MORE THAN ONE)
  1. N I,CNT
  1. S CNT=0,I=""
  1. F S I=$O(APSAGOT(I)) Q:I="" S CNT=CNT+1
  1. I CNT=0 W:'$D(ZTQUEUED) !,"NO FILE IN PATH "_APSAPATH_" WITH NAME "_APSAFILE_" EXISTS"
  1. I CNT>1 W:'$D(ZTQUEUED) !,"MORE THAN ONE FILE EXISTS FOR THIS PATH "_APSAPATH_" AND THIS FILE NAME "_APSAFILE
  1. I CNT=1 W:'$D(ZTQUEUED) !,"GOT THE FILE "_APSAFILE
  1. Q CNT
  1. ;
  1. TRANS(VAL) ;
  1. S VAL=$TR(VAL," ","") ;NO SPACES
  1. ;IHS/ITSC/ENM/POC NEXT 5 LINES ADDED 05/14/03
  1. S VAL=$TR(VAL,"""","") ;NO QUOTES
  1. S VAL=$TR(VAL,"-","")
  1. N PIECE,I,NCONT ;STRIP OUT CONTROL CHARACTERS
  1. S NCONT="" F I=1:1:$L(VAL) D
  1. .S PIECE=$E(VAL,I) I PIECE'?1C S NCONT=NCONT_PIECE
  1. Q NCONT
  1. ;
  1. ERR(VALUE,APSANUM,APSANDC) ;
  1. S ^TMP("APSAWP11",$J,"SORT"," "_APSANDC)=APSANDC_" "_APSANUM_" "_VALUE
  1. Q
  1. ;
  1. SORT N APSANDC S APSANDC=""
  1. K ^TMP("APSAWP11",$J,"ERR") ;IN CASE COME HERE FROM OPTION
  1. F S APSANDC=$O(^TMP("APSAWP11",$J,"SORT",APSANDC)) Q:APSANDC="" D
  1. .S ^(0)=$G(^TMP("APSAWP11",$J,"ERR",0))+1,IEN=^(0)
  1. .S ^TMP("APSAWP11",$J,"ERR",IEN,0)=^TMP("APSAWP11",$J,"SORT",APSANDC)
  1. Q
  1. ;
  1. CLOSE(IO) ;
  1. D CLOSE^%ZISH(IO)
  1. Q
  1. FLETCH ;
  1. S APSACNT=0
  1. S APSASTAT=$S($G(^%ZOSF("OS"))["OpenM":-1,$G(^%ZOSF("OS"))["Windows":1,$G(^%ZOSF("OS"))["UNIX":-1,1:-1)
  1. F U IO R APSANODE:5 Q:($$STATUS^%ZISH=APSASTAT)!'$T D ;DO I HAVE TO HAVE A TIMEOUT ON A READ??
  1. .U IO(0) ;IHS/OKCAO/POC 5/7/2003
  1. .Q:APSANODE=""
  1. .S APSAQUIT=0
  1. .S APSANODE=$$TRANS(APSANODE) ;ONE TIME INSTEAD OF MANY
  1. .S APSANDC=$P(APSANODE,",",2) ;NDC NUMBER
  1. .S APSAAAC=$P(APSANODE,",",4)
  1. .S APSANUM=$P(APSANODE,",",1)
  1. .I APSAAAC']"" D ERR("NO ACTUAL ACQUISTION COST",APSANUM,APSANDC) S APSAQUIT=1
  1. .I APSANDC']"" D ERR("NO NDC NUMBER",APSANUM,0) S APSAQUIT=1
  1. .I $L(APSANDC)'=11 D ERR("NDC NOT 11 DIGITS",APSANUM,APSANDC) S APSAQUIT=1
  1. .Q:APSAQUIT
  1. .S APSAFNUM=$O(^APSAMDF("B",APSANDC,""))
  1. .I APSAFNUM']"" D ERR("NO ENTRY IN AWP MED TRANSACTION FILE FOR NDC ",APSANUM,APSANDC) S APSAQUIT=1
  1. .Q:APSAQUIT
  1. .S DA=APSAFNUM
  1. .S DIE="^APSAMDF("
  1. .S DR="404///"_APSAAAC
  1. .D ^DIE
  1. .S APSACNT=APSACNT+1
  1. .I '$D(ZTQUEUED) U 0 W "."
  1. I '$D(ZTQUEUED) U 0 W !!,"COUNT OF UPDATES IS ",APSACNT
  1. Q
  1. ;
  1. REP ;ENTRY POINT TO PRINT OUT THE ERROR ACTUAL ACQUISTION FILE ENTRIES
  1. ;CALLED BY OPTION APSQ PRINT ERRORS FROM IMPORT OF AAC
  1. S LINE="W !?5,""NDC#"",?18,""AAC#"",?27,""ERR"""
  1. U 0 W !!,"ENTER THE DEVICE TO PRINT THE ERROR LIST"
  1. S %ZIS="QM" D ^%ZIS I POP Q
  1. I $D(IO("Q")) D Q
  1. .S ZTRTN="REPORT^APSAWP11",ZTDESC="PRINT ERROR REPORT OF ACUTAL ACQUISTION COST IMPORT"
  1. .S ZTSAVE("LINE")="" ;IHS/ITSC/ENM/POC 5/20/2003
  1. .D ^%ZTLOAD,HOME^%ZIS K IO("Q")
  1. ;
  1. REPORT ;
  1. D SORT ;SORT IT OUT FIRST
  1. I $D(ZTQUEUED) S ZTREQ="@"
  1. S:'$D(DTIME) DTIME=20
  1. S (END,PAGE)=0
  1. U IO
  1. D @("HDR"_(2-($E(IOST,1,2)="C-")))
  1. I '$D(^TMP("APSAWP11",$J,"ERR")) W !,"NO ERRORS IN THE ERROR LOG" Q
  1. S APSAIEN=0 F S APSAIEN=$O(^TMP("APSAWP11",$J,"ERR",APSAIEN)) Q:APSAIEN=""!END D
  1. .W !?5,^TMP("APSAWP11",$J,"ERR",APSAIEN,0)
  1. .D HDR:$Y+5>IOSL
  1. D ^%ZISC
  1. D CLEAN
  1. Q
  1. ;
  1. REP1 ;ENTRY POINT FOR NO ACTUAL ACQUISTION COST IN THE DRUG FILE
  1. K ^TMP("APSAWP11",$J,"ERR1")
  1. D CLEAN
  1. S LINE="W !?5,""DRUG#"",?30,""DRUG NAME"""
  1. S DRUGIEN=0
  1. F S DRUGIEN=$O(^PSDRUG(DRUGIEN)) Q:DRUGIEN'=+DRUGIEN D
  1. .I $S('$D(^PSDRUG(+DRUGIEN,"I")):0,DT'>^("I"):0,1:1) Q ;INACTIVE
  1. .Q:$P($G(^PSDRUG(+DRUGIEN,660)),"^",6)]"" ;GOT A PRICE
  1. .S ^(0)=$G(^TMP("APSAWP11",$J,"ERR1",0))+1,TMPIEN=^(0)
  1. .S ^TMP("APSAWP11",$J,"ERR1",TMPIEN,0)=$E(+DRUGIEN_" ",1,25)_$P(^PSDRUG(+DRUGIEN,0),"^",1)
  1. .Q
  1. U 0 W !!,"ENTER THE DEVICE TO PRINT THE LIST OF DRUGS WITH NO AAC"
  1. S %ZIS="QM" D ^%ZIS I POP Q
  1. I $D(IO("Q")) D Q
  1. .S ZTRTN="REP1PRT^APSAWP11",ZTDESC="PRINT ERROR REPORT OF ACUTAL ACQUISTION COST IMPORT"
  1. .S ZTSAVE("LINE")="" ;IHS/ITSC/ENM/POC 5/20/2003
  1. .D ^%ZTLOAD,HOME^%ZIS K IO("Q")
  1. ;
  1. REP1PRT ;
  1. I $D(ZTQUEUED) S ZTREQ="@"
  1. S:'$D(DTIME) DTIME=20
  1. S (END,PAGE)=0
  1. U IO
  1. D @("HDR"_(2-($E(IOST,1,2)="C-")))
  1. I '$D(^TMP("APSAWP11",$J,"ERR1")) W !,"NO ERRORS IN THE ERROR LOG" Q
  1. S APSAIEN=0 F S APSAIEN=$O(^TMP("APSAWP11",$J,"ERR1",APSAIEN)) Q:APSAIEN=""!END D
  1. .W !?5,^TMP("APSAWP11",$J,"ERR1",APSAIEN,0)
  1. .D HDR:$Y+5>IOSL
  1. K ^TMP("APSAWP11",$J,"ERR1")
  1. D ^%ZISC
  1. D CLEAN
  1. Q
  1. ;
  1. HDR I $E(IOST,1,2)="C-" W !,"PRESS RETURN TO CONTINUE OR '^' TO QUIT" R X:DTIME S END='$T!(X="^") Q:END
  1. HDR1 W @IOF
  1. HDR2 S APSALOC=$P(^DIC(4,DUZ(2),0),"^"),APSALEN=$L(APSALOC)
  1. S PAGE=PAGE+1 W ?(IOM-APSALEN/2),APSALOC,?(IOM-12),"PAGE: ",$J(PAGE,3)
  1. X LINE
  1. Q