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

PSBIHS3.m

Go to the documentation of this file.
  1. PSBIHS3 ;KF/VAOIT PSB DRUG/PHAM ORDERABLE ITEM/IV ADD/SOL
  1. ;;1.0;PSB BCMA CPS FOXK;**1018**;;Build 27
  1. EN ;
  1. W @IOF
  1. W !,"Hello "_$P($$GET1^DIQ(200,DUZ,.01,"E"),",",2)_" this report looks at the Following Files for 'Correct Drug Pointers'"
  1. W !,?10,"Drug File (50) --->Pharmacy Orderble Item (50.7)"
  1. W !,?10," ^ ^ | |"
  1. W !,?10," | | | |"
  1. W !,?10," | | | |"
  1. W !,?10," | -------IV Additives (52.6) |"
  1. W !,?10," -------------------------------IV Solution (52.7)"
  1. TAS ;TASK IT OR NOT
  1. S %ZIS="Q"
  1. W ! D ^%ZIS K %ZIS
  1. I POP D Q
  1. .W $C(7)
  1. .K VISN,PSBEDATE,PSBBDATE,PSBDV
  1. ; output not queued...
  1. N PSBTK
  1. I '$D(IO("Q")) D
  1. .D WAIT^DICD U IO S PSBTK=1 D NEW
  1. .I IO'=IO(0) D ^%ZISC
  1. ; set up the Task...
  1. I $D(IO("Q")) D
  1. .N ZTDESC,ZTSAVE,ZTIO,ZTRTN
  1. .S ZTRTN="NEW^PSBIHS3"
  1. .S ZTDESC="PSB Drug File Pharm Orderable Item IV Add/Sol Report"
  1. .S ZTIO=ION
  1. .D ^%ZTLOAD
  1. .D HOME^%ZIS
  1. .W !,$S($G(ZTSK):"Task number "_ZTSK_" queued.",1:"ERROR -- NOT QUEUED!")
  1. .K IO("Q"),ZTSK
  1. Q
  1. NEW N PSBIEN,PSBIV,PSBIVD,PSBOI,PSBCNT
  1. K ^TMP($J,"DRUG")
  1. S (PSBCNT,PSBIEN)=0 F S PSBIEN=$O(^PSDRUG(PSBIEN)) Q:'+PSBIEN D
  1. .Q:$P($G(^PSDRUG(PSBIEN,"I")),U,1)'="" ;NO INACTIVE
  1. .S PSBOI=$P($G(^PSDRUG(PSBIEN,2)),U,1)
  1. .Q:PSBOI'>0
  1. .S PSBIV=0 F S PSBIV=$O(^PS(52.7,"AOI",PSBOI,PSBIV)) Q:PSBIV'>0 D
  1. ..S PSBIVD=$P($G(^PS(52.7,+PSBIV,0)),U,2)
  1. ..S PSBSTATUS=$S($P($G(^PS(52.7,+PSBIV,"I")),U,1)'="":"I",1:"A")
  1. ..Q:PSBIEN=+PSBIVD
  1. ..S PSBCNT=1
  1. ..I PSBIVD'>0 S PSBIVD="NOT SET"
  1. ..I PSBIV>0 S ^TMP($J,"DRUG","S",PSBSTATUS,PSBIV)=PSBOI_"^"_PSBIEN_"^"_PSBIVD
  1. .;Additives
  1. .S PSBIV=0 F S PSBIV=$O(^PS(52.6,"AOI",PSBOI,PSBIV)) Q:PSBIV'>0 D
  1. ..;S PSBIV=$O(^PS(52.6,"AOI",PSBOI,""))
  1. ..S PSBIVD=$P($G(^PS(52.6,+PSBIV,0)),U,2)
  1. ..S PSBSTATUS=$S($P($G(^PS(52.7,+PSBIV,"I")),U,1)'="":"I",1:"A")
  1. ..Q:PSBIEN=+PSBIVD
  1. ..S PBSCNT=1
  1. ..I PSBIVD'>0 S PSBIVD="NOT SET"
  1. ..I PSBIV>0 S ^TMP($J,"DRUG","A",PSBSTATUS,PSBIV)=PSBOI_"^"_PSBIEN_"^"_PSBIVD
  1. ;PRINT SOLUTIONS
  1. N PSB1,PSB2,PSB3,PSB4
  1. S PSB1="" F S PSB1=$O(^TMP($J,"DRUG","S",PSB1)) Q:PSB1="" D
  1. .S PSB2="" F S PSB2=$O(^TMP($J,"DRUG","S",PSB1,PSB2)) Q:PSB2'>0 D
  1. ..S PSB3=$P(^TMP($J,"DRUG","S",PSB1,PSB2),"^",1),PSB4=$P(^TMP($J,"DRUG","S",PSB1,PSB2),"^",2)
  1. ..S PSB5=$P(^TMP($J,"DRUG","S",PSB1,PSB2),"^",3)
  1. ..I $Y>(IOSL-4) D HEAD
  1. ..W !,"Drug File: ",PSB4,U,$P($G(^PSDRUG(PSB4,0)),U,1)
  1. ..W !?5,"Pharmacy Orderable Item:",PSB3," ",$P($G(^PS(50.7,PSB3,0)),U,1)
  1. ..W !?5,"IV Solution IEN:",PSB2," Generic Drug:",PSB5," ",$P($G(^PSDRUG(PSB5,0)),U,1)
  1. ..W !?5,"IV Solution:",$S(PSB1="I":"INACTIVE",PSB1="A":"ACTIVE"),!!
  1. N PSB1,PSB2,PSB3,PSB4
  1. S PSB1="" F S PSB1=$O(^TMP($J,"DRUG","A",PSB1)) Q:PSB1="" D
  1. .S PSB2="" F S PSB2=$O(^TMP($J,"DRUG","A",PSB1,PSB2)) Q:PSB2'>0 D
  1. ..S PSB3=$P(^TMP($J,"DRUG","A",PSB1,PSB2),"^",1),PSB4=$P(^TMP($J,"DRUG","A",PSB1,PSB2),"^",2)
  1. ..S PSB5=$P(^TMP($J,"DRUG","A",PSB1,PSB2),"^",3)
  1. ..I $Y>(IOSL-4) D HEAD
  1. ..W !,"Drug File: ",PSB4,U,$P($G(^PSDRUG(PSB4,0)),U,1)
  1. ..W !?5,"Pharmacy Orderable Item:",PSB3," ",$P($G(^PS(50.7,PSB3,0)),U,1)
  1. ..W !?5,"IV Additives IEN:",PSB2," Generic Drug:",PSB5," ",$P($G(^PSDRUG(PSB5,0)),U,1)
  1. ..W !?5,"IV Additives:",$S(PSB1="I":"INACTIVE",PSB1="A":"ACTIVE"),!!
  1. I PSBCNT=0 W !,"Nothing to Report"
  1. Q
  1. W @IOF
  1. W !,"Drug File Pharmacy Orderable IV Additives/Solution Checker" D NOW^%DTC S Y=% D DD^%DT W ?60,$E(Y,1,18),!
  1. F J=1:1:IOM W "-"
  1. Q
  1. REINACT ;RENAME ALL INACTIVE DRUGS TO ZZ/zz THEM
  1. N PSBIEN,PSBIV,PSBIVD,PSBOI,PSBCNT
  1. K ^TMP("$J")
  1. S %DT("A")="Lets ZZ all inactive Drugs with 'INACTIVE DATE' before: "
  1. S %DT="AE"
  1. D ^%DT I X="^"!(X="")!(Y'>0) Q
  1. S PSBBDATE=Y K %DT,Y
  1. W @IOF,!,"Searching..." D WAIT^DICD
  1. S (PSBCNT,PSBIEN)=0 F S PSBIEN=$O(^PSDRUG(PSBIEN)) Q:'+PSBIEN D
  1. .S PSBDATE=$P($G(^PSDRUG(PSBIEN,"I")),U,1)
  1. .Q:+PSBDATE>PSBBDATE ;BAIL ON THOSE WITH INACTIVE GREATER THAN DT ENTERS
  1. .S PSBNAME=$P($G(^PSDRUG(PSBIEN,0)),U,1)
  1. .Q:$E(PSBNAME,1,2)="ZZ" ;QUIET ALREADY ZZ'D"
  1. .Q:$E(PSBNAME,1,2)="zz" ;QUIET ALREADY ZZ'D"
  1. .S ^TMP($J,50,PSBIEN_",",.01)="ZZ"_PSBNAME
  1. .W !,"IEN:"_PSBIEN_" RENAMING "_PSBNAME_" TO ZZ"_PSBNAME
  1. .S PSBCNT=PSBCNT+1
  1. I PSBCNT=0 W !!,"NONE FOUND" Q
  1. W !,"Would like me to ZZ the "_PSBCNT_" INACTIVE Drugs?" S %=2 D YN^DICN
  1. Q:%'=1
  1. D WAIT^DICD
  1. D UPDATE^DIE(,"^TMP($J)")
  1. W !,"BYE I AM DONE NOW!"