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

ABSPES02.m

Go to the documentation of this file.
  1. ABSPES02 ; IHS/FCS/DRS - JWS 03:28 PM 6 Mar 1996 ; [ 09/12/2002 10:03 AM ]
  1. ;;1.0;PHARMACY POINT OF SALE;**3**;JUN 21, 2001;Build 38
  1. ;----------------------------------------------------------------------
  1. ;----------------------------------------------------------------------
  1. ;Claim Response List by Response Code
  1. ;
  1. ;Parameters:
  1. ; SDATE - Start DATE (Internal FM Fmat)
  1. ; EDATE - End DATE (Internal FM Fmat)
  1. ; RSPCODE - Claim Response rejection type (R,P,C,D)
  1. ; MAX - MAXimum number of items returned in list
  1. ; GROOT - Global root of resulting list (eg: "^LIST2($J")
  1. ;
  1. ;Returns:
  1. ;
  1. ;----------------------------------------------------------------------
  1. Q
  1. EN1(SDATE,EDATE,RSPCODE,MAX,GROOT) ;EP - from ABSPECZ3
  1. I $E(GROOT,$L(GROOT))="," S GROOT=$E(GROOT,1,$L(GROOT)-1) ; 03/12/2001
  1. ;Manage local variables
  1. N DA,DA2,COUNT,DATA,CLAIMID,SENTON,VCPTIEN,VMEDIEN,DRUGIEN,QTY
  1. N DRUGNAME,RS,TDATE,DATE1,DATE2,NDATE,RDA
  1. ;
  1. ;Make sure input variables are defined
  1. Q:$G(SDATE)=""
  1. Q:$G(EDATE)=""
  1. Q:$G(RSPCODE)=""
  1. Q:$G(MAX)=""
  1. Q:$G(GROOT)=""
  1. ;
  1. S DATE1=$$CDTFM^ABSPOSU1(SDATE,-1)_".245959"
  1. S DATE2=EDATE_".245959"
  1. K @(GROOT_")")
  1. S COUNT=0,NDATE=DATE1
  1. F D Q:NDATE=""!(NDATE>DATE2)!(COUNT=MAX)
  1. .S NDATE=$O(^ABSPC("AE",NDATE))
  1. .Q:NDATE=""
  1. .Q:NDATE>DATE2
  1. .S DA=0
  1. .F D Q:'+DA!(COUNT=MAX)
  1. ..S DA=$O(^ABSPC("AE",NDATE,DA))
  1. ..Q:'+DA
  1. ..S RDA=0
  1. ..F S RDA=$O(^ABSPR("B",DA,RDA)) Q:'RDA D
  1. ...Q:'$D(^ABSPR("AC",RSPCODE,RDA))
  1. ...S DATA=$G(^ABSPC(DA,0))
  1. ...S CLAIMID=$$LJBF^ABSPOSU9($P(DATA,U,1),16)
  1. ...S SENTON=$$FM2EXT^ABSPOSU1($P($P(DATA,U,5),".",1))
  1. ...S SENTON=$$LJBF^ABSPOSU9($S(SENTON="":"<Not Sent>",1:SENTON),11)
  1. ...S DA2=0
  1. ...F D Q:'+DA2
  1. ....S DA2=$O(^ABSPR("AC",RSPCODE,RDA,DA2))
  1. ....Q:'+DA2
  1. ....S RS=$S(RDA="":"",1:$P($G(^ABSPR(RDA,1000,DA2,500)),U,1))
  1. ....S RS=$$RJBF^ABSPOSU9(RS,2)
  1. ....S VCPTIEN=$P($G(^ABSPC(DA,400,DA2,0)),U,2)
  1. ....S VMEDIEN=$S(VCPTIEN="":"",1:$P($G(^ABSVCPT(9002301,VCPTIEN,"SPEC")),U,2))
  1. ....S DRUGIEN=$S(VMEDIEN="":"",1:$P($G(^AUPNVMED(VMEDIEN,0)),U,1))
  1. ....S QTY=$S(VMEDIEN="":"",1:$P($G(^AUPNVMED(VMEDIEN,0)),U,6))
  1. ....S QTY=$$RJBF^ABSPOSU9(QTY,4)
  1. ....S DRUGNAME=$S(DRUGIEN="":"Undefined",1:$P($G(^PSDRUG(DRUGIEN,0)),U,1))
  1. ....S DRUGNAME=$$LJBF^ABSPOSU9(DRUGNAME,29)
  1. ....S COUNT=COUNT+1
  1. ....S @(GROOT_",COUNT,""I"")")=DA_U_DA2_U_RDA
  1. ....S @(GROOT_",COUNT,""E"")")=CLAIMID_" "_SENTON_" "_RS_" "_DRUGNAME_" "_QTY
  1. S @(GROOT_",""Column Headers"")")="2|Claim ID:16,DATE Sent:11,RS:2,MEDication NAME:29,QTY:4"
  1. S @(GROOT_",0)")=COUNT
  1. Q