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

APSQBRES.m

Go to the documentation of this file.
  1. APSQBRES ;IHS/ASDS/ENM/POC/PLS - PROCESS RESULTS OF POINT OF SALE CALL;09-Oct-2008 11:27;SM
  1. ;;7.0;IHS PHARMACY MODIFICATIONS;**1001,1007**;Sep 23, 2004
  1. ;---------------------------------------------------
  1. S X=$$EN^APSQBRES(RXIEN,RFIEN,ADDDEL)
  1. Q
  1. ; Returns POS call status
  1. ; Input: RXIEN - IEN to File 52
  1. ; RFIEN - IEN to Refill Multiple in File 52 - optional
  1. ; ADDDEL - Either an 'A'dd or 'D'elete flag
  1. ; REASON - Reason for claim reversal (OPTIONAL) - Added IHS/MSC/PLS - 08/21/08
  1. EN(RXIEN,RFIEN,ADDDEL,REASON) ;EP
  1. ;Called by APSPFUNC and APSPRESK
  1. N PSORES,PSOREST,DA,DR,DIE,X,Y,D0,DO,DD,MORE
  1. Q:$$TEST("ABSPOSRX") ""
  1. ; Must have a prescription IEN
  1. S:$L($G(REASON)) MORE("RXREASON")=REASON
  1. I '+$G(RXIEN) S PSOREST="ERROR" G FIN
  1. K:$G(RFIEN)="" RFIEN
  1. I ADDDEL="A" D
  1. .I $G(RFIEN)']"" S PSORES=$$CLAIM^ABSPOSRX(RXIEN)
  1. .E S PSORES=$$CLAIM^ABSPOSRX(RXIEN,$G(RFIEN))
  1. .S PSOREST=$$TEXTADD($G(PSORES))
  1. .I +$G(RFIEN) S DA=RFIEN,DA(1)=RXIEN,DIE="^PSRX("_DA(1)_",1,",DR="9999999.08///^S X=PSOREST" D ^DIE
  1. .I '+$G(RFIEN) S DA=RXIEN,DR="9999999.08///^S X=PSOREST",DIE="^PSRX(" D ^DIE
  1. I ADDDEL="D" D
  1. .S PSORES=$$UNCLAIM^ABSPOSRX(RXIEN,+$G(RFIEN),.MORE)
  1. .S PSOREST=$$TEXTDEL($G(PSORES))
  1. .I '+$G(RFIEN) S DA=RXIEN,DR="9999999.08///^S X=PSOREST",DIE="^PSRX(" D ^DIE
  1. FIN Q PSOREST
  1. ;
  1. STATUS(RXIEN,RFIEN) ;EP
  1. Q:$$TEST("ABSPOSRX") ""
  1. I '$G(RXIEN) Q ""
  1. ; Check for refill
  1. I $G(RFIEN)]"" Q $$STATUS^ABSPOSRX(RXIEN,RFIEN)
  1. ; Default to prescription
  1. Q $$STATUS^ABSPOSRX(RXIEN)
  1. ;
  1. ; Return Insurance Pointer
  1. ; Input: APSQIEN - IEN to ABSP NCPDP OVERRIDE (9002313.511)
  1. ; APSQDIEN - IEN to ABSP DUR/PSS (9002313.473)
  1. OVERRIDE(APSQIEN,APSQDIEN) ;EP
  1. ;
  1. ;****** NOTE - CALLING ROUTINE SHOULD 'NEW' APSQDUR !!!!!
  1. ;****** (or kill it) - DON'T LEAVE THIS FIELD
  1. ;****** It is only done this way because of limitations
  1. ;****** experienced in PSORXED (can't handle multiple
  1. ;****** values coming back)
  1. Q:$$TEST("ABSPOSO") ""
  1. N (RFD,APSQIEN,DUZ,IO,IOBS,IOF,IOM,ION,IOS,IOSL,ILST,IOT,IOXY,U,DT,DTIME,APSQCOM,APSQCOMR,APSQDIEN,APSQDUR)
  1. S APSQDUR="" ;pre set to null
  1. S APSQNIEN=$$NEWOVER^ABSPOSO($G(APSQIEN),$G(APSQDIEN))
  1. S APSQDUR=$P(APSQNIEN,U,2) ;this is the DUR IEN
  1. S APSQNIEN=$P(APSQNIEN,U) ;Pass back the insurance pointer
  1. ;
  1. ; If RFD is defined, a prescription is being edited.
  1. I $D(RFD) D
  1. .;For guarantee capture of this information, printing and calling bill program.
  1. .S:'RFD APSQCOM="INSURER INFO ADDED/EDITED,"
  1. .;For guarantee capture of this information, printing and call billing probram.
  1. .S:RFD APSQCOMR="REFILL INSURER INFO ADDED/EDITED,"
  1. Q APSQNIEN
  1. TEST(X) ;EP
  1. N QUIT
  1. S QUIT='+$$GET1^DIQ(9009033,$G(PSOSITE),307,"I")
  1. X:'QUIT ^%ZOSF("TEST") I '$T S QUIT=1
  1. Q QUIT
  1. ; Return text for Add Status
  1. ; Input: Add Status Value
  1. TEXTADD(STATUS) ; EP
  1. N RES
  1. I STATUS=1 S RES="WILL PROCESS"
  1. E I STATUS=2 S RES="WILL PROCESS BUT HAS BEEN SUBMITTED PREVIOUSLY"
  1. E I STATUS=3 S RES="PREVIOUS PAPER CLAIM, REVERSE AND RESUBMIT"
  1. E I STATUS=4 S RES="PREVIOUS ELECTRONIC CLAIM, REVERSE AND RESUBMIT"
  1. E I STATUS=-1 S RES="ALREADY CLAIM IN PROGRESS"
  1. E I STATUS<0 S RES="FAILURE"
  1. E S RES="UNKNOWN CLAIM STATUS"
  1. Q RES
  1. ; Return text for Delete Status
  1. ; Input: Delete Status Value
  1. TEXTDEL(STATUS) ; EP
  1. N RES
  1. I STATUS=1 S RES="WILL RESUBMIT FOR REVERSAL"
  1. E I STATUS=-1 S RES="ALREADY TRANSACTION IN PROGRESS"
  1. E I STATUS=-2 S RES="NO RECORD OF PREVIOUS CLAIM TO REVERSE"
  1. E I STATUS=-3 S RES="NOT REVERSIBLE, MUST BE PAPER OR E PAYABLE"
  1. E S RES="UNKNOWN REVERSAL STATUS"
  1. Q RES