148 lines
4.8 KiB
Mathematica
148 lines
4.8 KiB
Mathematica
BPSSCR01 ;BHAM ISC/SS - USER SCREEN ;10-MAR-2005
|
|
;;1.0;E CLAIMS MGMT ENGINE;**1,5**;JUN 2004;Build 45
|
|
;;Per VHA Directive 2004-038, this routine should not be modified.
|
|
;USER SCREEN
|
|
Q
|
|
;User Screen header
|
|
;input:
|
|
; BPSLN - line of the header
|
|
;output:
|
|
; text string for the header
|
|
HDR(BPSLN) ; -- header code
|
|
N BPARR,BPX,BPXSL
|
|
Q:'$D(@VALMAR@("VIEWPARAMS"))
|
|
D RESTVIEW(.BPARR)
|
|
I BPSLN=1 Q "SELECTED DIVISION(S): "_$$GETVDIVS(.BPARR,58)
|
|
I BPSLN=2 Q $$GETVDETS(.BPARR)
|
|
I BPSLN=3 D Q $$LINE^BPSSCRU3(80-$L(BPX)," ")_BPX
|
|
. S BPXSL=$$SORTTYPE^BPSSCRSL($G(BPARR(1.12)))
|
|
. I BPXSL="" S BPXSL="Transaction date by default"
|
|
. S BPX="Sorted by: "_BPXSL
|
|
Q ""
|
|
;/**
|
|
;get current view details
|
|
GETVDETS(BPARR) ;*/
|
|
N BPSTR
|
|
I $G(BPARR(1.01))="A" S BPSTR=$$LJ^BPSSCR02("Transmitted by ALL users",31)
|
|
E S BPSTR=$$LJ^BPSSCR02("Transmitted by "_$$GETUSRNM^BPSSCRU1($G(BPARR(1.16))),31)
|
|
S BPSTR=BPSTR_$$LJ^BPSSCR02(" Activity Date Range: within the past "_$G(BPARR(1.05))_$S($G(BPARR(1.04))="H":" hour(s)",1:" day(s)"),49)
|
|
Q BPSTR
|
|
;
|
|
;/**
|
|
;get divisions selected
|
|
GETVDIVS(BPARRAY,BPMLEN) ;*/
|
|
I $G(BPARRAY(1.13))="A" Q "ALL"
|
|
N BPDIV,BPCNT,BPSTR,BPQUIT
|
|
S BPQUIT=0,BPSTR=""
|
|
F BPCNT=1:1:20 S BPDIV=$P($G(BPARRAY("DIVS")),";",BPCNT+1) Q:+BPDIV=0 D Q:BPQUIT=1
|
|
. I $L(BPSTR_$$DIVNAME^BPSSCRDS(BPDIV))>(BPMLEN-4) D S BPQUIT=1 Q
|
|
. . S BPSTR=$$LJ^BPSSCR02(BPSTR_",...",BPMLEN)
|
|
. S BPSTR=BPSTR_$S(BPCNT>1:", ",1:"")_$$DIVNAME^BPSSCRDS(BPDIV)
|
|
Q BPSTR
|
|
;/**
|
|
;input:
|
|
; BPARR - local array to store user profile info
|
|
;returns:
|
|
; the last number in LM ARRAY
|
|
INIT() ; -- init variables and list array*/
|
|
N BPLN,BPLM,BP59,BPSORT,BPTMPGL,BPRET
|
|
N BPARR
|
|
;get user's ien in BPS PRFILE file
|
|
;if array is not defined then read information from file,
|
|
;otherwise use current info from the array, because the user
|
|
;may specify criteria in array without saving it in file for
|
|
;the temporary use
|
|
I '$D(@VALMAR@("VIEWPARAMS")) D
|
|
. D READPROF^BPSSCRSL(.BPARR,+DUZ)
|
|
. D SAVEVIEW(.BPARR)
|
|
E D RESTVIEW(.BPARR)
|
|
;get date/time range
|
|
I $$GETDT^BPSSCRU1(.BPARR)=0 Q
|
|
S BPTMPGL=$NA(^TMP($J,"BPSSCR"))
|
|
K @BPTMPGL,@VALMAR
|
|
D COLLECT^BPSSCR04(BPTMPGL,.BPARR)
|
|
D SAVEVIEW(.BPARR)
|
|
S BPRET=$$LMARRAY(BPTMPGL,.BPARR)
|
|
K @BPTMPGL
|
|
S:BPRET>1 BPRET=BPRET-1
|
|
Q BPRET
|
|
;
|
|
;/**
|
|
;make elements for List Manager array
|
|
;input:
|
|
;BPTMPGL - TMP global to store selected claims
|
|
;BPARR - local array to store user profile info
|
|
;returns:
|
|
; the last number in LM ARRAY
|
|
;indexing (example):
|
|
;S ^TMP("BPSSCR",$J,"VALM",1,0)="2 BUMSTEAD,CHARLE 5444 WEBMD"
|
|
;S ^TMP("BPSSCR",$J,"VALM",2,0)=" 2.1 CEFACLOR 500MG CAP"
|
|
;S ^TMP("BPSSCR",$J,"VALM",3,0)=" 2.2 AMPICILLIN 250MG CAP"
|
|
;S ^TMP("BPSSCR",$J,"VALM","LMIND",2,437272,7008776.00001,0)=""
|
|
;S ^TMP("BPSSCR",$J,"VALM","LMIND",2.1,437272,7008778.00011,1)=""
|
|
;S ^TMP("BPSSCR",$J,"VALM","LMIND",2.2,437272,7009457.00001,2)=""
|
|
LMARRAY(BPTMPGL,BPARR) ;*/
|
|
N BPSRTVAL,BP59,BPSORT,BPLN,BPLM,BPSTR1,BPCLM,BPPREV
|
|
S BPLM=0 ;patient_AND_insurance level counter
|
|
S BPCLM=0 ;claim level counter
|
|
S BP59=0
|
|
S BPLN=1 ;line counter for List manager array to display on the screen
|
|
S BPPREV=0 ;to store data from previous patient group
|
|
;sort type:
|
|
;'T' FOR TRANSACTION DATE
|
|
;'D' FOR DIVISION (ECME pharmacy)
|
|
;'I' FOR INSURANCE
|
|
;'C' FOR REJECT CODE
|
|
;'P' FOR PATIENT NAME
|
|
;'N' FOR DRUG NAME
|
|
;'B' FOR BILL TYPE (BB/RT)
|
|
;'L' FOR FILL LOCATION (Windows/Mail/CMOP)
|
|
;'R' FOR RELEASED/NON-RELEASED RX
|
|
;'A' FOR ACTIVE/DISCONTINUED RX
|
|
S BPSORT=$G(BPARR(1.12))
|
|
S:BPSORT="" BPSORT="T" ;default
|
|
S BPSRTVAL="" ;a value that "makes" an order, can be a string
|
|
F S BPSRTVAL=$O(@BPTMPGL@("SORT",BPSORT,BPSRTVAL)) Q:BPSRTVAL="" D
|
|
. I BPSORT="D" D
|
|
. . S BPSTR1="---- Division: "_$$DIVNAME^BPSSCRDS(+$P(BPSRTVAL,U,2))_" "
|
|
. . D SET^VALM10(BPLN,BPSTR1_$$LINE^BPSSCRU3(79-$L(BPSTR1),"-"),0)
|
|
. . S BPLN=BPLN+1
|
|
. I BPSORT="C" D
|
|
. . S BPSTR1=$E("---- Reject code: "_$$GETRJNAM^BPSSCRU3(BPSRTVAL)_" ",1,79)
|
|
. . D SET^VALM10(BPLN,BPSTR1_$$LINE^BPSSCRU3(79-$L(BPSTR1),"-"),0)
|
|
. . S BPLN=BPLN+1
|
|
. S BP59=0
|
|
. F S BP59=+$O(@BPTMPGL@("SORT",BPSORT,BPSRTVAL,BP59)) Q:+BP59=0 D
|
|
. . I BP59'=0 D MKARRELM^BPSSCR02(.BPLN,VALMAR,BP59,.BPLM,.BPCLM,.BPPREV)
|
|
D UPDPREV^BPSSCR02(VALMAR,BPLM,BPPREV)
|
|
Q BPLN
|
|
;
|
|
HELP ; -- help code
|
|
N X S X="?" D DISP^XQORM1 W !!
|
|
Q
|
|
;
|
|
EXIT ; -- exit code
|
|
Q
|
|
;
|
|
EXPND ; -- expand code
|
|
Q
|
|
;/**
|
|
;store current view params in VALMAR("VIEWPARAMS") TMP global array
|
|
;to display in the header
|
|
;input:
|
|
; BPARR - array with user profile info to store
|
|
SAVEVIEW(BPARR) ; S @VALMAR@("VIEWPARAMS",BPLMIND,BPDFN,BP59,BPLINE)=""
|
|
Q:'$D(BPARR)
|
|
M @VALMAR@("VIEWPARAMS")=BPARR
|
|
Q
|
|
;
|
|
;/**
|
|
;restore current view params from VALMAR("VIEWPARAMS") TMP global array
|
|
;input:
|
|
; BPARR - array with user profile info to store
|
|
RESTVIEW(BPARR) ; S @VALMAR@("VIEWPARAMS",BPLMIND,BPDFN,BP59,BPLINE)=""
|
|
Q:'$D(@VALMAR@("VIEWPARAMS"))
|
|
M BPARR=@VALMAR@("VIEWPARAMS")
|
|
Q
|
|
;
|