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

ORVAA.m

Go to the documentation of this file.
  1. ORVAA ;;SLC OIFO/GDU - VA Advantage Indicator for GUI;[01/04/05 08:33]
  1. ;;3.0;ORDER ENTRY/RESULTS REPORTING;**215**;Dec 17, 1999
  1. ;Input Variable
  1. ; DFN - Patient IEN
  1. ;Ouput Variable
  1. ; ORY - Any array variable that will contain the following.
  1. ; If the patient does not have insurance
  1. ; Y(0)=0
  1. ; If the patient has active insurance
  1. ; Y(0)="Pt Insur"^"Patient has active insurance"
  1. ; Y(1)=Company ID
  1. ; Y(2)=Company Name
  1. ; Y(3)=Company Street Address
  1. ; Y(4)=Company State, Zip Code
  1. ; Y(5)=Phone number
  1. ; Y(6)=Coordination of Benefits indicator
  1. ; Y(7)=Policy Name
  1. ; Y(8)=Policy Reimburasble indicator
  1. ; Y(9)=Effective date
  1. ; Y(10)=Expiration date
  1. ; Y(11)=Subscriber relationship to patient
  1. ; Y(12)=Subscriber name
  1. ; Y(13)=Subscriber ID
  1. ; Y(14)=Pharmacy coverage
  1. ; Y(15)=Outpatient coverage
  1. ; Y(16)=Inpatient coverage
  1. ; Y(17)=Group Number
  1. ; Y(18)=Patient relationship to subscriber
  1. ; If this is a Tricare plan or Champus plan:
  1. ; Y(19)="This is a TriCare/Champus plan."
  1. ; If this is a VA Advantage plan:
  1. ; Y(19)="This is a VA Advantage plan"
  1. ; Y(20)=A blank line
  1. ; Repeats as needed for each active policy
  1. ;
  1. ;Internal Variables
  1. ; LC - Loop Counter
  1. ; LQ - Loop Quit, stop loop execution
  1. ; U - Default delimiter variable, set to "^" by FileMan/Kernel
  1. ;External References
  1. ; %ZTER - DBIA 1621
  1. ; Kernel Standard Error Recording Routine
  1. ; $$NOW^XLFDT - DBIA 10103
  1. ; Returns current date/time
  1. ; $$REPEAT^XLFSTR - DBIA 10104
  1. ; Returns a string of character repeated a number of times
  1. ; $$INSUR^IBBAPI - DBIA 4419
  1. ; API input variables:
  1. ; DFN - Patient IEN
  1. ; IBDT - Date to check for active insurance
  1. ; IBSTAT - Status filter
  1. ; ORIBR - Array to store returned Insurance information
  1. ; IBFLDS - Specifies what insurance information is to be returned
  1. ; API output variables:
  1. ; PIC - Patient Insurance Check
  1. ; If equal to -1 an error occured during insurance lookup.
  1. ; Error message is built and returned to user. This data
  1. ; is contained in ORIBR.
  1. ;
  1. ; If equal to 0 patient has no active insurance. Y is set
  1. ; to 0, program run ended.
  1. ;
  1. ; If equal to 1 patient has actie insurance. The insurance
  1. ; information is parsed, a message is built, and returned
  1. ; to the user. This data is contained in ORIBR.
  1. ;
  1. VAA(ORY,DFN) ;
  1. ;Returns primary insurance policy name if VAA or TriCare
  1. N I,IBDT,IBFLDS,IBSTAT,LC,LQ,ORIBR,ORX,PIC,WI
  1. S ORY(0)=""
  1. ;Get active insurance information
  1. S IBSTAT="RB",(LC,ORIBR,PIC)="",(LQ,WI)=0,IBFLDS="*"
  1. S IBDT=$$NOW^XLFDT
  1. S PIC=$$INSUR^IBBAPI(DFN,IBDT,IBSTAT,.ORIBR,IBFLDS)
  1. I PIC<0 S ORY(0)=0 Q
  1. I PIC=0 S:ORY(0)="" ORY(0)=0 Q
  1. S $P(ORY(0),U)="Pt Insur",$P(ORY(0),U,2)="Patient has active Insurance"
  1. S $P(ORY(0),U,3)=""
  1. F S LC=$O(ORIBR("IBBAPI","INSUR",LC)) Q:LC=""!(LQ) D
  1. . D FLD01,FLD02,FLD03,FLD04,FLD05,FLD06,FLD07,FLD08,FLD09,FLD10
  1. . D FLD11,FLD12,FLD13,FLD14,FLD15,FLD16,FLD17,FLD18,FLD19,FLD20
  1. . S WI=WI+1,ORY(WI)=""
  1. I ORY(0)="" S ORY(0)=0
  1. Q
  1. FLD01 ;Insurance Company Name
  1. S WI=WI+1,ORY(WI)=$$SBS($P($P($T(F01T),";",3),U),30)
  1. I $G(ORIBR("IBBAPI","INSUR",LC,1))'="" D
  1. . S ORY(WI)=ORY(WI)_$P(ORIBR("IBBAPI","INSUR",LC,1),U)
  1. S WI=WI+1,ORY(WI)=$$SBS($P($P($T(F01T),";",3),U,2),30)
  1. I $G(ORIBR("IBBAPI","INSUR",LC,1))'="" D
  1. . S ORY(WI)=ORY(WI)_$P(ORIBR("IBBAPI","INSUR",LC,1),U,2)
  1. Q
  1. FLD02 ;Insurance Company Street Address
  1. S WI=WI+1,ORY(WI)=$$SBS($P($T(F02T),";",3),30)
  1. I $G(ORIBR("IBBAPI","INSUR",LC,2))="" Q
  1. S ORY(WI)=ORY(WI)_ORIBR("IBBAPI","INSUR",LC,2)
  1. Q
  1. FLD03 ;Insurance Company City
  1. I $G(ORIBR("IBBAPI","INSUR",LC,3))="" S WI=WI+1,ORY(WI)="" Q
  1. S WI=WI+1,ORY(WI)=$$REPEAT^XLFSTR(" ",30)_ORIBR("IBBAPI","INSUR",LC,3)
  1. Q
  1. FLD04 ;Insurance Company State
  1. I $G(ORIBR("IBBAPI","INSUR",LC,4))="" Q
  1. S ORY(WI)=ORY(WI)_", "_$P(ORIBR("IBBAPI","INSUR",LC,4),U,2)
  1. Q
  1. FLD05 ;Insurance Company Zip
  1. I $G(ORIBR("IBBAPI","INSUR",LC,5))="" Q
  1. S ORY(WI)=ORY(WI)_" "_ORIBR("IBBAPI","INSUR",LC,5)
  1. Q
  1. FLD06 ;Insurance Company Phone
  1. S WI=WI+1,ORY(WI)=$$SBS($P($T(F06T),";",3),30)
  1. I $G(ORIBR("IBBAPI","INSUR",LC,6))="" Q
  1. S ORY(WI)=ORY(WI)_ORIBR("IBBAPI","INSUR",LC,6)
  1. Q
  1. FLD07 ;Coordination of Benefits
  1. S WI=WI+1,ORY(WI)=$$SBS($P($P($T(F07T),";",3),U),30)
  1. I $G(ORIBR("IBBAPI","INSUR",LC,7))="" Q
  1. S ORY(WI)=ORY(WI)_$P(ORIBR("IBBAPI","INSUR",LC,7),U,2)_" insurer"
  1. Q
  1. FLD08 ;Policy Name
  1. S WI=WI+1,ORY(WI)=$$SBS($P($T(F08T),";",3),30)
  1. I $G(ORIBR("IBBAPI","INSUR",LC,8))="" Q
  1. S ORY(WI)=ORY(WI)_$P(ORIBR("IBBAPI","INSUR",LC,8),U)
  1. S ORY(WI)=ORY(WI)_" - "_$P(ORIBR("IBBAPI","INSUR",LC,8),U,2)
  1. Q
  1. FLD09 ;Policy Reimbursable
  1. S WI=WI+1,ORY(WI)=$$SBS($P($T(F09T),";",3),30)
  1. I $G(ORIBR("IBBAPI","INSUR",LC,9))="" Q
  1. S ORY(WI)=ORY(WI)_$P(ORIBR("IBBAPI","INSUR",LC,9),U,2)
  1. Q
  1. FLD10 ;Effective Date
  1. S WI=WI+1,ORY(WI)=$$SBS($P($T(F10T),";",3),30)
  1. I $G(ORIBR("IBBAPI","INSUR",LC,10))="" Q
  1. S ORY(WI)=ORY(WI)_$$FMTE^XLFDT(ORIBR("IBBAPI","INSUR",LC,10))
  1. Q
  1. FLD11 ;Expiration Date
  1. S WI=WI+1,ORY(WI)=$$SBS($P($T(F11T),";",3),30)
  1. I $G(ORIBR("IBBAPI","INSUR",LC,11))="" Q
  1. S ORY(WI)=ORY(WI)_$$FMTE^XLFDT(ORIBR("IBBAPI","INSUR",LC,11))
  1. Q
  1. FLD12 ;Subscriber Relationship
  1. S WI=WI+1,ORY(WI)=$$SBS($P($T(F12T),";",3),40)
  1. I $G(ORIBR("IBBAPI","INSUR",LC,12))="" Q
  1. S ORY(WI)=ORY(WI)_$P(ORIBR("IBBAPI","INSUR",LC,12),U,2)
  1. Q
  1. FLD13 ;Subscriber Name
  1. S WI=WI+1,ORY(WI)=$$SBS($P($T(F13T),";",3),40)
  1. I $G(ORIBR("IBBAPI","INSUR",LC,13))="" Q
  1. S ORY(WI)=ORY(WI)_ORIBR("IBBAPI","INSUR",LC,13)
  1. Q
  1. FLD14 ;Subscriber ID
  1. S WI=WI+1,ORY(WI)=$$SBS($P($T(F14T),";",3),40)
  1. I $G(ORIBR("IBBAPI","INSUR",LC,14))="" Q
  1. S ORY(WI)=ORY(WI)_ORIBR("IBBAPI","INSUR",LC,14)
  1. Q
  1. FLD15 ;Pharmacy Coverage
  1. S WI=WI+1,ORY(WI)=$$SBS($P($T(F15T),";",3),30)
  1. I $G(ORIBR("IBBAPI","INSUR",LC,15))="" Q
  1. S ORY(WI)=ORY(WI)_$P(ORIBR("IBBAPI","INSUR",LC,15),U,2)
  1. Q
  1. FLD16 ;Outpatient Coverage
  1. S WI=WI+1,ORY(WI)=$$SBS($P($T(F16T),";",3),30)
  1. I $G(ORIBR("IBBAPI","INSUR",LC,16))="" Q
  1. S ORY(WI)=ORY(WI)_$P(ORIBR("IBBAPI","INSUR",LC,16),U,2)
  1. Q
  1. FLD17 ;Inpatient Coverage
  1. S WI=WI+1,ORY(WI)=$$SBS($P($T(F17T),";",3),30)
  1. I $G(ORIBR("IBBAPI","INSUR",LC,17))="" Q
  1. S ORY(WI)=ORY(WI)_$P(ORIBR("IBBAPI","INSUR",LC,17),U,2)
  1. Q
  1. FLD18 ;Group Number
  1. S WI=WI+1,ORY(WI)=$$SBS($P($T(F18T),";",3),30)
  1. I $G(ORIBR("IBBAPI","INSUR",LC,18))="" Q
  1. S ORY(WI)=ORY(WI)_ORIBR("IBBAPI","INSUR",LC,18)
  1. Q
  1. FLD19 ;Patient Relationship to Subscriber
  1. S WI=WI+1,ORY(WI)=$$SBS($P($T(F19T),";",3),40)
  1. I $G(ORIBR("IBBAPI","INSUR",LC,19))="" Q
  1. S ORY(WI)=ORY(WI)_$P(ORIBR("IBBAPI","INSUR",LC,19),U,2)
  1. Q
  1. FLD20 ;VA Advantage Flag - Tricare/Champus Flag
  1. S WI=WI+1,ORY(WI)=""
  1. I $G(ORIBR("IBBAPI","INSUR",LC,20))="" Q
  1. I $P(ORIBR("IBBAPI","INSUR",LC,20),U)=1 D
  1. . S ORY(WI)="This is a VA Advantage plan"
  1. I $P(ORIBR("IBBAPI","INSUR",LC,20),U,2)=1 D
  1. . S ORY(WI)="This is a TriCare/Champus plan"
  1. Q
  1. SBS(X,X1) ;Stuff Blank Spaces in line headers
  1. N X2
  1. S X2=X1-$L(X)
  1. S X=X_$$REPEAT^XLFSTR(" ",X2)
  1. Q X
  1. ;Field text for output
  1. F01T ;;Company ID:^Company Name:
  1. F02T ;;Company Address:
  1. F06T ;;Phone Number:
  1. F07T ;;Coordination of Benefits:^insurer
  1. F08T ;;Policy Name:
  1. F09T ;;Policy Reimbursable:
  1. F10T ;;Effective Date:
  1. F11T ;;Expiration Date:
  1. F12T ;;Subscriber Relationship to Patient:
  1. F13T ;;Subscriber Name:
  1. F14T ;;Subscriber ID:
  1. F15T ;;Pharmacy Coverage:
  1. F16T ;;Outpatient Coverage:
  1. F17T ;;Inpatient Coverage:
  1. F18T ;;Group Number:
  1. F19T ;;Patient Relationship to Subscriber:
  1. F20T1 ;;This is a VA Advantage plan.
  1. F20T2 ;;This is a TriCare/Champus plan.