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

ABMDVST9.m

Go to the documentation of this file.
  1. ABMDVST9 ; IHS/ASDST/DMJ - PCC VISIT STUFF IV PHARMACY ;
  1. ;;2.6;IHS Third Party Billing System;**2**;NOV 12, 2009
  1. ;;Y2K/OK - IHS/ADC/JLG 12-18-97
  1. ;Original;TMD;03/26/96 10:50 AM
  1. ;
  1. ;IHS/DSD/JLG 05/21/98 - NOIS NCA-0598-180077
  1. ; Modified to set corresponding diagnosis if only one POV
  1. ; IHS/SD/SDR - abm*2.6*2 - 3PMS10003A - modified to call ABMFEAPI
  1. ;
  1. Q:ABMIDONE
  1. Q:$D(ABMP("RXIVDONE"))
  1. MED ;
  1. N ABMPPDU,ABMQTY
  1. S DA(1)=ABMP("CDFN"),DIC="^ABMDCLM(DUZ(2),"_DA(1)_",23,",DIC(0)="LE"
  1. S ABM=0 F S ABM=$O(^PS(55,ABMP("PDFN"),"IV",ABM)) Q:'ABM I $G(^(ABM,9)) S ABM(9)=^(9) D
  1. .I $D(ABMP("DDT")),$D(ABMP("ADMITDT")),+ABM(9)\1>ABMP("DDT")!((+ABM(9)\1)<ABMP("ADMITDT")) Q
  1. .I '$D(ABMP("DDT")),+ABM(9)\1'=ABMCHVDT Q
  1. .S ABM("TIME")=+ABMCHV0
  1. .N DOC,OK,DIC,DR,DIQ,DA
  1. .S OK=$D(ABMP("DDT"))
  1. .I 'OK D
  1. ..S DOC=$P(^PS(55,ABMP("PDFN"),"IV",ABM,0),U,6)
  1. ..S DIC="^DD(55.01,"
  1. ..S DR=.3
  1. ..S DIQ="ABMDFP"
  1. ..S DIQ(0)="I"
  1. ..S DA=.06
  1. ..D EN^DIQ1
  1. ..S DIC="^DD(9000010.06,"
  1. ..S DIQ="ABMDFV"
  1. ..S DA=.01
  1. ..D EN^DIQ1
  1. ..I ABMDFP(0,.06,.3,"I")'=ABMDFV(0,.01,.3,"I") D
  1. ...S DOC=$G(^DIC(16,DOC,"A3"))
  1. ..;It is assumed that if the files point to different files only the
  1. ..;pharmacy one needs to converted to a file 200 value
  1. ..S D1=0,OK=0
  1. ..F S D1=$O(^AUPNVPRV("AD",ABMVDFN,D1)) Q:'D1 D Q:OK
  1. ...I $P(^AUPNVPRV(D1,0),U,1)=DOC S OK=1
  1. .Q:'OK
  1. .K X
  1. .S ABM("FEE")=0
  1. .;This is the IV subfile of the Pharmacy Patient File.
  1. .S Y=^PS(55,ABMP("PDFN"),"IV",ABM,0)
  1. .S ABM("ORDER#")=$P(Y,U,1)
  1. .S ABM("TIME")=$P(Y,U,2)
  1. .S ABM("TYPE")=$P(Y,"^",4)
  1. .S ABM("TQTY")=$P(Y,"^",16)
  1. .;ABM("TQTY")=Cumulative doses - not used
  1. .S ABM("A")=0,ABM("T")="A" F S ABM("A")=$O(^PS(55,ABMP("PDFN"),"IV",ABM,"AD",ABM("A"))) Q:'ABM("A") S ABM(0)=^(ABM("A"),0) D
  1. ..;ABM(0) - Additive node
  1. ..;(#.01) ADDITIVE [1P] ^ (#.02) STRENGTH [2F] ^(#.03) BOTTLE [3F] ^
  1. ..;S ABM("QTY")=+$P(ABM(0),U,2)*$P(ABM(9),U,2)
  1. ..S ABMQTY=$S("PACSH"[ABM("TYPE"):+$P(ABM(0),U,2),1:1)*$P(ABM(9),U,3)
  1. ..;For piggybacks, admixtures, & chemo the strength is multiplied
  1. ..;times TOTAL IV'S ADMINISTERED to get ABMQTY. For others we use
  1. ..;just TOTAL IV'S ADMINISTERED.
  1. ..;The above line has been modified further to measure the quantity
  1. ..;the same for all IV's. It has been left in to make it easier
  1. ..;to modify.
  1. ..;ABM("QTY") - STRENGTH TIMES LAST QTY FILLED - not used
  1. ..I +ABM(0),$D(^PS(52.6,+ABM(0))) D
  1. ...S Y=^PS(52.6,+ABM(0),0)
  1. ...S ABMX=$P(Y,U,2)
  1. ...;The price per disp unit is obtained either from 3P fee table or
  1. ...;drug file.
  1. ...;S ABMPPDU=$S($D(^ABMDFEE(ABMP("FEE"),25,ABMX,0)):$P(^(0),U,2),1:$P($G(^PSDRUG(ABMX,660)),U,6)) ;abm*2.6*2 3PMS10003A
  1. ...S ABMPPDU=$S($D(^ABMDFEE(ABMP("FEE"),25,ABMX,0)):$P($$ONE^ABMFEAPI(ABMP("FEE"),25,ABMX,ABMP("VDT")),U),1:$P($G(^PSDRUG(ABMX,660)),U,6)) ;abm*2.6*2 3PMS10003A
  1. ...;Fee for each PPDU times ABMQTY (quantity) calculated above
  1. ...S ABM("FEE")=ABM("FEE")+(ABMPPDU*ABMQTY)
  1. ...;S ABM("FEE")=$G(ABM("FEE"))+($P(Y,U,7)*ABM("QTY"))
  1. ...I '$D(X),$D(^PSDRUG(ABMX,0)) S X=ABMX
  1. ..;ABMX - Generic Drug
  1. ..;7th Piece - average drug cost per unit
  1. .S ABMSRC="PSIV|"_ABM_"|RX-AD"
  1. .I $D(X),$D(^PSDRUG(X,0)) D MEDSET
  1. .K X
  1. .S ABM("FEE")=0
  1. .S ABM("A")=0,ABM("T")="S" F S ABM("A")=$O(^PS(55,ABMP("PDFN"),"IV",ABM,"SOL",ABM("A"))) Q:'ABM("A") S ABM(0)=^(ABM("A"),0) D
  1. ..;ABM(0) - solution node
  1. ..S ABM("QTY")=+$P(ABM(0),U,2)*$P(ABM(9),U,2)
  1. ..;ABM("QTY") - VOLUME TIMES LAST QTY FILLED
  1. ..;^PS(52.7 is the IV solutions file.
  1. ..I +ABM(0),$D(^PS(52.7,+ABM(0))) D
  1. ...S Y=^PS(52.7,+ABM(0),0)
  1. ...S ABMX=$P(Y,U,2)
  1. ...;S ABMPPDU=$S($D(^ABMDFEE(ABMP("FEE"),25,ABMX,0)):$P(^(0),U,2),1:$P($G(^PSDRUG(ABMX,660)),U,6)) ;abm*2.6*2 3PMS10003A
  1. ...S ABMPPDU=$S($D(^ABMDFEE(ABMP("FEE"),25,ABMX,0)):$P($$ONE^ABMFEAPI(ABMP("FEE"),25,ABMX,ABMP("VDT")),U),1:$P($G(^PSDRUG(ABMX,660)),U,6)) ;abm*2.6*2 3PMS10003A
  1. ...;For solutions same as additives.
  1. ...S ABM("FEE")=ABM("FEE")+(ABMPPDU*$P(ABM(9),U,3))
  1. ...;S ABM("FEE")=$G(ABM("FEE"))+($P(Y,U,7)*ABM("QTY"))
  1. ...I '$D(X),$D(^PSDRUG(ABMX,0)) S X=ABMX
  1. ..;X - Generic drug
  1. ..;7th piece - Average drug cost
  1. .S ABMSRC="PSIV|"_ABM_"|RX-SOL"
  1. .I $D(X),$D(^PSDRUG(X,0)) D MEDSET
  1. Q
  1. ;
  1. MEDSET ;SET 3P CLAIM RX MULTIPLE
  1. S ABMP("RXIVDONE")=1
  1. S DA(1)=ABMP("CDFN")
  1. S DIC="^ABMDCLM(DUZ(2),"_DA(1)_",23,",DIC(0)="LE"
  1. S DA=$O(^ABMDCLM(DUZ(2),ABMP("CDFN"),"ASRC",ABMSRC,0))
  1. I DA,'$D(@(DIC_DA_",0)")) S DA="" ;For duplicates problem
  1. I 'DA D
  1. .S DIC("P")=$P(^DD(9002274.3,23,0),U,2)
  1. .; ENTER CORRECT DEFAULT REV CODE
  1. .S DIC("DR")=".02////260" ;IHS/DSD/JLG 3/31/98
  1. .K DD,DO D FILE^DICN S DA=+Y
  1. .K DIC("DR") ;IHS/DSD/JLG 3/31/98
  1. Q:DA<1 S DIE=DIC
  1. D DFEE
  1. S DR=".03////1;.04////"_+ABM("FEE")_";.05////"_+ABM("DISPFEE")_";.06////"_ABM("ORDER#") ;MODIFIED IHS/DSD/JLG 3/31/98
  1. S DR=DR_";"_$S(ABM("T")="A":.07,1:.08)_"////"_(+ABM(0))_";.09///"_$P(ABM(0),U,2)
  1. ;Next line set correspond diagnosis if only 1 POV
  1. I $D(ABMP("CORRSDIAG")) S DR=DR_";.13////1"
  1. S DR=DR_";.15////"_ABM("TYPE")_";.14////"_ABM("TIME")
  1. S DR=DR_";.17////"_ABMSRC
  1. D ^DIE
  1. K DR
  1. Q
  1. DFEE ;DISPENSE FEE
  1. S ABM("DFPARM")=$G(^ABMDPARM(DUZ(2),1,4))
  1. S ABM("DISPFEE")=+$P(ABM("DFPARM"),"^",$F("APHSC",ABM("TYPE")))
  1. Q