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

ABMDVST5.m

Go to the documentation of this file.
  1. ABMDVST5 ; IHS/ASDST/DMJ - PCC VISIT STUFF - PART 6 (PHARMACY) ;
  1. ;;2.6;IHS Third Party Billing System;**2,4**;NOV 12, 2009
  1. ;Original;TMD;08/19/96 5:01 PM
  1. ;
  1. ; IHS/SD/SDR - v2.5 p8 - task 57
  1. ; Removed check for OTC drugs and no entry in fee schedule. Also
  1. ; added code to populate dt disc. and RTS if flag is set.
  1. ; IHS/SD/SDR - v2.5 p9 - IM19140 - <SUBSCRIPT>ABMDVST5+29^ABMDVST5
  1. ; IHS/SD/SDR - v2.5 p10 - IM21500 - Added code to check new V Med field
  1. ; POINT OF SALE BILLING STATUS and only bill if blank or rejected
  1. ;
  1. I $G(ABMP("RXDONE")) Q
  1. I $G(ABMP("INS"))'="",($P($G(^AUTNINS(ABMP("INS"),2)),U,3)="U") Q
  1. I $G(ABMP("INS"))'="",($P($G(^AUTNINS(ABMP("INS"),2)),"^",3)="P") Q
  1. S (ABM("TIME"),ABMR("TIME"))=$P(ABMP("V0"),U)
  1. ;
  1. MED ;
  1. K DIC
  1. S DA(1)=ABMP("CDFN"),DIC="^ABMDCLM(DUZ(2),"_DA(1)_",23,",DIC(0)="LE"
  1. S ABM=0 F S ABM=$O(^AUPNVMED("AD",ABMVDFN,ABM)) Q:'ABM D
  1. .Q:'$D(^AUPNVMED(ABM,0))
  1. .Q:$P(^AUPNVMED(ABM,0),"^",8)&($G(ABMRXFLG)'=1)
  1. .S X=$P(^AUPNVMED(ABM,0),U)
  1. .S ABMSRC="14|"_ABM_"|RX"
  1. .D MEDCHK
  1. .Q:ABMR("QTY")=""&($G(ABMRXFLG)'=1)
  1. .Q:$G(ABMR("RTS"))&($G(ABMRXFLG)'=1)
  1. .D MEDSET
  1. Q K DIC,ABMR,DR,DIE,X,Y
  1. Q
  1. ;
  1. MEDCHK ;
  1. S ABMR("X")=$O(^PSRX("APCC",ABM,""))
  1. I ABMR("X")="" D NORX Q
  1. S ABMR("RX")=$P($G(^PSRX(ABMR("X"),0)),U)
  1. I ABMR("RX")="" D NORX Q
  1. S ABMR("DTWR")=$P(^PSRX(ABMR("X"),0),"^",13)
  1. S ABMR("REF")=$O(^PSRX("APCC",ABM,ABMR("X"),0))
  1. I ABMR("REF")="" D
  1. .S ABMR0=$G(^PSRX(ABMR("X"),0))
  1. .S ABMR2=$G(^PSRX(ABMR("X"),2))
  1. .S ABMR("QTY")=$P(ABMR0,"^",7)
  1. .S ABMR("RTS")=$P(ABMR2,"^",15)
  1. .S ABMR("DAYS")=$P(ABMR0,"^",8)
  1. .S ABMR("NDC")=$P(ABMR2,"^",7)
  1. .S ABMR("PROV")=$P(ABMR0,"^",4)
  1. I ABMR("REF")'="" D
  1. .S ABMR0=$G(^PSRX(ABMR("X"),1,ABMR("REF"),0))
  1. .S ABMR("QTY")=$P(ABMR0,"^",4)
  1. .S ABMR("RTS")=$P(ABMR0,"^",16)
  1. .S ABMR("DAYS")=$P(ABMR0,"^",10)
  1. .S ABMR("NDC")=$$NDCVAL^ABMPFUNC(ABMR("X"),ABMR("REF"))
  1. .S ABMR("PROV")=$P(ABMR0,"^",17)
  1. Q
  1. NORX ;no entry in prescription file
  1. S ABMR("QTY")=$P(^AUPNVMED(ABM,0),"^",6)
  1. S ABMR("RX")=""
  1. Q
  1. MEDSET ;FILE
  1. S DA=$O(^ABMDCLM(DUZ(2),DA(1),"ASRC",ABMSRC,0))
  1. I DA,'$D(@(DIC_DA_",0)")) S DA="" ;For duplicates problem
  1. S ABMR("PPDU")=+$P($$ONE^ABMFEAPI(ABMP("FEE"),25,X,ABMP("VDT")),U) ;abm*2.6*2 3PMS10003A ;abm*2.6*4 NOHEAT
  1. S:'ABMR("PPDU") ABMR("PPDU")=+$P($G(^PSDRUG(X,660)),U,6) ;abm*2.6*4 NOHEAT
  1. I (($P($$ONE^ABMFEAPI(ABMP("FEE"),25,X,ABMP("VDT")),U)=0)&('ABMR("PPDU"))&($P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),1)),U,14)'="Y")) Q ;abm*2.6*4 NOHEAT
  1. I 'DA D
  1. .S DIC("P")=$P(^DD(9002274.3,23,0),U,2)
  1. .; ADD DEFAULT REV CODE
  1. .S DIC("DR")=".02////250"
  1. .K DD,DO D FILE^DICN
  1. .K DIC("DR")
  1. .S DA=+Y
  1. Q:DA<0 S DIE=DIC
  1. S ABMR("SURC")=$S(ABMP("VTYP")'=111:$P(^ABMDPARM(DUZ(2),1,0),U,3),1:$P($G(^ABMDPARM(DUZ(2),1,4)),U,6))
  1. ;X is the drug ien. ABMDFEE is dinumed in this mult
  1. ;Q:($P($G(^ABMDFEE(ABMP("FEE"),25,X,0)),U,2)=0&($P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),1)),U,14)'="Y")) ;abm*2.6*2 3PMS10003A
  1. ;Q:($P($$ONE^ABMFEAPI(ABMP("FEE"),25,X,ABMP("VDT")),U)=0&($P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),1)),U,14)'="Y")) ;abm*2.6*2 3PMS10003A ;abm*2.6*4 NOHEAT
  1. ;S ABMR("PPDU")=+$P($G(^ABMDFEE(ABMP("FEE"),25,X,0)),U,2) ;abm*2.6*2 3PMS10003A
  1. ;S ABMR("PPDU")=+$P($$ONE^ABMFEAPI(ABMP("FEE"),25,X,ABMP("VDT")),U) ;abm*2.6*2 3PMS10003A ;abm*2.6*4 NOHEAT
  1. ;S:'ABMR("PPDU") ABMR("PPDU")=+$P($G(^PSDRUG(X,660)),U,6) ;abm*2.6*4 NOHEAT
  1. K DR
  1. S DR=".03////"_ABMR("QTY")_";.04////"_ABMR("PPDU")_";.05////"_ABMR("SURC")_";.06////"_ABMR("RX")_";.14////"_ABMR("TIME")
  1. ;Next line set correspond diagnosis if only 1 POV
  1. I $D(ABMP("CORRSDIAG")) S DR=DR_";.13////1"
  1. S DR=DR_";.17////"_ABMSRC
  1. D ^DIE
  1. S DR=".22////"_ABMR("X")
  1. D ^DIE
  1. S DR=".23////"_$G(ABMR("PROV"))
  1. D ^DIE
  1. S DR=".24////"_$G(ABMR("NDC"))
  1. D ^DIE
  1. S DR=".2////"_$G(ABMR("DAYS"))
  1. D ^DIE
  1. S DR=".19////"_+$G(ABMR("REF"))
  1. D ^DIE
  1. S DR=".25////"_$G(ABMR("DTWR"))
  1. D ^DIE
  1. S ABMP("RXDONE")=1
  1. I $G(ABMRXFLG)=1 D
  1. .S DR=".26////"_$P($G(^AUPNVMED(ABM,0)),U,8)
  1. .S DR=DR_";.27////"_$G(ABMR("RTS"))
  1. .D ^DIE
  1. Q
  1. ;
  1. MED3 ;EP
  1. ; 4/26/01 - This code is no longer called... leaving in routine for
  1. ; version just in case...
  1. Q:$P($G(^AUTNINS(ABMP("INS"),2)),U,3)="U"
  1. Q:$D(ABMP("MEDSCHKD"))
  1. S DA(1)=ABMP("CDFN"),DIC="^ABMDCLM(DUZ(2),"_DA(1)_",23,",DIC(0)="LE"
  1. S ABM("D")=ABMCHVDT-1
  1. ;ABM("ED") is the discharge date if it exists
  1. S ABM("ED")=$S($P($G(^ABMDCLM(DUZ(2),ABMP("CDFN"),6)),U,3):$P(^(6),U,3),1:ABMCHVDT)+.24
  1. F S ABM("D")=$O(^PSRX("AD",ABM("D"))) Q:'ABM("D")!(ABM("D")>ABM("ED")) D
  1. .S ABM("X")=0 F S ABM("X")=$O(^PSRX("AD",ABM("D"),ABM("X"))) Q:'ABM("X") I $P($G(^PSRX(ABM("X"),0)),U,2)=ABMP("PDFN") D MED3CK
  1. K DIC
  1. Q
  1. ;
  1. MED3CK I $D(^PSRX("AD",ABM("D"),ABM("X")))=11 S ABM("REF")=$O(^PSRX("AD",ABM("D"),ABM("X"),""))
  1. E S ABM("REF")=""
  1. S X=$P(^PSRX(ABM("X"),0),U,6),ABM("RX")=$P(^(0),U),ABM("QTY")=$S('+ABM("REF"):$P(^(0),U,7),1:$P($G(^(1,ABM("REF"),0)),U,4))
  1. S ABMSRC="PSRX|"_ABM("X")_"|RX"
  1. Q:ABM("QTY")=""
  1. Q:'$D(^PSDRUG(X,0))
  1. Q:$P(^PSDRUG(X,0),"^",3)[9 ;OTC DRUG
  1. S DA=$O(^ABMDCLM(DUZ(2),DA(1),"ASRC",ABMSRC,0))
  1. I DA,'$D(@(DIC_DA_",0)")) S DA="" ;For duplicates problem
  1. I 'DA D
  1. .S ABMP("MEDSCHKD")=1
  1. .S DIC("P")=$P(^DD(9002274.3,23,0),U,2)
  1. .S DIC("DR")=".02////250"
  1. .K DD,DO D FILE^DICN
  1. .K DIC("DR")
  1. .S DA=+Y
  1. Q:DA<0 S DIE=DIC
  1. S ABM("SURC")=$S(ABMP("VTYP")'=111:+$P(^ABMDPARM(DUZ(2),1,0),U,3),1:+$P($G(^ABMDPARM(DUZ(2),1,4)),"^",6))
  1. ;Q:($P($G(^ABMDFEE(ABMP("FEE"),25,X,0)),U,2)&($P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),1)),U,14)'="Y")) ;abm*2.6*2 3PMS10003A
  1. Q:($P($$ONE^ABMFEAPI(ABMP("FEE"),25,X,ABMP("VDT")),U)&($P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),1,ABMP("VTYP"),1)),U,14)'="Y")) ;abm*2.6*2 3PMS10003A
  1. ;S ABM("PPDU")=+$P($G(^ABMDFEE(ABMP("FEE"),25,X,0)),"^",2) ;abm*2.6*2 3PMS10003A
  1. S ABM("PPDU")=+$P($$ONE^ABMFEAPI(ABMP("FEE"),25,X,ABMP("VDT")),U) ;abm*2.6*2 3PMS10003A
  1. S:'ABM("PPDU") ABM("PPDU")=+$P($G(^PSDRUG(X,660)),"^",6)
  1. K DR
  1. S DR=".03////"_ABM("QTY")_";.04////"_ABM("PPDU")_";.05////"_ABM("SURC")_";.06////"_ABM("RX")_";.14////"_ABM("TIME")
  1. ;Next line set correspond diagnosis if only 1 POV
  1. I $D(ABMP("CORRSDIAG")) S DR=DR_";.13////1"
  1. S DR=DR_";.17////"_ABMSRC
  1. D ^DIE
  1. Q