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

ABSPECA5.m

Go to the documentation of this file.
  1. ABSPECA5 ; IHS/FCS/DRS - Parse Claim Response ; [ 09/12/2002 9:57 AM ]
  1. ;;1.0;PHARMACY POINT OF SALE;**1,3,39**;JUN 21, 2001;Build 38
  1. ;----------------------------------------------------------------------
  1. ;----------------------------------------------------------------------
  1. ;File FDATA() Array Data in Claim Response File (9002313.03)
  1. ;
  1. ;Parameters: RESPIEN - Claim Response Record IEN (9002313.03)
  1. ;---------------------------------------------------------------------
  1. ; Called from ABSPECA4 from ABSPOSQL from ABSPOSQ4
  1. ;
  1. ; IHS/DSD/lwj 9/26/01 added one more quit condition to response
  1. ; section. For some odd reason BC/BS if Alabama sent across
  1. ; response code with nulls in them - this caused error at the
  1. ; Poarch Creek site. No other sites reported the problem, but
  1. ; the change was made and included in Patch 1 as a safe guard.
  1. ;
  1. ;
  1. FILE(RESPIEN) ;EP - from ABSPECA4
  1. I 'RESPIEN Q:$$IMPOSS^ABSPOSUE("P",,,,,$T(+0))
  1. N MEDN,COUNT,INDEX,RJTN,RJTCOUNT,RJTCODE,NEXT,CLAIMIEN
  1. ;
  1. ;Clean up FDATA() array
  1. S NEXT=0
  1. F D Q:'NEXT
  1. .S NEXT=$O(FDATA(NEXT)) Q:'NEXT
  1. .S FDATA(NEXT)=$$CLIP^ABSPOSU9($G(FDATA(NEXT)))
  1. S MEDN=""
  1. F D Q:MEDN=""
  1. .S MEDN=$O(FDATA("M",MEDN))
  1. .Q:MEDN=""
  1. .S NEXT=0
  1. .F D Q:'+NEXT
  1. ..S NEXT=$O(FDATA("M",MEDN,NEXT))
  1. ..Q:'+NEXT
  1. ..S FDATA("M",MEDN,NEXT)=$$CLIP^ABSPOSU9($G(FDATA("M",MEDN,NEXT)))
  1. ;
  1. S ^ABSPR(RESPIEN,100)=U_$G(FDATA(102))_U_$G(FDATA(103))
  1. S $P(^ABSPR(RESPIEN,500),U,1)=$G(FDATA(501))
  1. S $P(^ABSPR(RESPIEN,500),U,24)=$G(FDATA(524))
  1. ;
  1. S CLAIMIEN=$P($G(^ABSPR(RESPIEN,0)),U,1)
  1. S INDEX=$S(CLAIMIEN="":0,1:$O(^ABSPC(CLAIMIEN,400,0))-1)
  1. S:INDEX<0 INDEX=0
  1. S COUNT=0
  1. S MEDN=""
  1. F D Q:MEDN=""
  1. .S MEDN=$O(FDATA("M",MEDN))
  1. .Q:MEDN=""
  1. .;
  1. .S COUNT=COUNT+1
  1. .S INDEX=INDEX+1
  1. .;
  1. .S ^ABSPR(RESPIEN,1000,INDEX,0)=INDEX
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,500),U,1)=$G(FDATA("M",MEDN,501))
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,500),U,3)=$G(FDATA("M",MEDN,503))
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,500),U,5)=$G(FDATA("M",MEDN,505))
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,500),U,6)=$G(FDATA("M",MEDN,506))
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,500),U,7)=$G(FDATA("M",MEDN,507))
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,500),U,8)=$G(FDATA("M",MEDN,508))
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,500),U,9)=$G(FDATA("M",MEDN,509))
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,500),U,10)=$G(FDATA("M",MEDN,510))
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,500),U,12)=$G(FDATA("M",MEDN,512))
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,500),U,13)=$G(FDATA("M",MEDN,513))
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,500),U,14)=$G(FDATA("M",MEDN,514))
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,500),U,17)=$G(FDATA("M",MEDN,517))
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,500),U,18)=$G(FDATA("M",MEDN,518))
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,500),U,19)=$G(FDATA("M",MEDN,519))
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,500),U,20)=$G(FDATA("M",MEDN,520))
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,500),U,21)=$G(FDATA("M",MEDN,521))
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,500),U,22)=$G(FDATA("M",MEDN,522))
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,500),U,23)=$G(FDATA("M",MEDN,523))
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,504),U,1)=$G(FDATA("M",MEDN,504))
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,525),U,1)=$G(FDATA("M",MEDN,525))
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,526),U,1)=$G(FDATA("M",MEDN,526))
  1. .S $P(^ABSPR(RESPIEN,1000,INDEX,1000),U,1)=$G(FDATA("M",MEDN,1000))
  1. .;
  1. .;S "AC" cross-reference
  1. .D:'($G(FDATA("M",MEDN,501))="")
  1. ..S ^ABSPR("AC",$G(FDATA("M",MEDN,501)),RESPIEN,INDEX)=""
  1. .;File Reject CODEs
  1. .S RJTN="",RJTCOUNT=0
  1. .F D Q:RJTN=""
  1. ..S RJTN=$O(FDATA("M",MEDN,511,RJTN))
  1. ..Q:RJTN=""
  1. ..S RJTCODE=$G(FDATA("M",MEDN,511,RJTN))
  1. ..;IHS/OIT/CNI/RAN 04/13/2010 Patch 39 Emdeon is sending extra spaces...RJTCODE must not contain spaces
  1. ..I RJTCODE[" " S RJTCODE=$TR(RJTCODE," ","")
  1. ..Q:RJTCODE=" "
  1. ..Q:RJTCODE="00"
  1. ..Q:RJTCODE="" ;IHS/DSD/lwj 9/26/01 no nulls allowed
  1. ..S RJTCOUNT=RJTCOUNT+1
  1. ..;
  1. ..S ^ABSPR(RESPIEN,1000,INDEX,511,RJTCOUNT,0)=RJTCODE
  1. ..S ^ABSPR(RESPIEN,1000,INDEX,511,"B",RJTCODE,RJTCOUNT)=""
  1. .S ^ABSPR(RESPIEN,1000,INDEX,511,0)="^9002313.03511A^"_RJTCOUNT_"^"_RJTCOUNT
  1. .;
  1. .S ^ABSPR(RESPIEN,1000,"B",INDEX,INDEX)=""
  1. ;
  1. S ^ABSPR(RESPIEN,1000,0)="^9002313.0301A^"_INDEX_"^"_COUNT
  1. Q