VistA-FOIAVistA/r/HEALTH_LEVEL_SEVEN-HL/HLCSREQ.m

66 lines
1.8 KiB
Mathematica

HLCSREQ ;ALB/MFK - HL7 MESSAGE REQUEUER SCREEN # 3 ;02/16/2000 15:58
;;1.6;HEALTH LEVEL SEVEN;**61**;Oct 13, 1995
EN ; -- main entry point
D EN^VALM("HL MESSAGE REQUEUER - 1")
Q
;
HDR ; -- header code
N TMP
S TMP="Known Logical Links"
S VALMHDR(1)=$$SETSTR^VALM1(TMP,"",(40-($L(TMP)\2)),$L(TMP))
Q
;
INIT ; -- init variables and list array
; -- build array of indices and queues
N LLE,X,LINEENT,NAME,SIZE,HLPOINT,HLSENT,ENTRY,HLSTAT,X
S LLE=0,X=0
F S LLE=$O(^HLCS(870,LLE)) Q:(LLE="") D
.Q:('$D(^HLCS(870,LLE,2,0)))
.S LINEENT=""
.S SIZE=$P(^HLCS(870,LLE,2,0),"^",4)
.S:(SIZE="") SIZE=0
.S HLPOINT="",HLSENT=0
.F S HLPOINT=$O(^HLCS(870,LLE,2,"B",HLPOINT)) Q:(HLPOINT="") D
..S ENTRY=$O(^HLCS(870,LLE,2,"B",HLPOINT,""))
..Q:'ENTRY
..Q:'$D(^HLCS(870,LLE,2,ENTRY,0))
..S HLSTAT=$P($G(^HLCS(870,LLE,2,ENTRY,0)),"^",2)
..S HLSENT=HLSENT+($S(HLSTAT="P":0,1:1))
.S NAME=$P(^HLCS(870,LLE,0),"^",1)
.S X=X+1
.S LINEENT=$$SETFLD^VALM1(X,LINEENT,"NUMBER")
.S LINEENT=$$SETFLD^VALM1(NAME,LINEENT,"QUEUE")
.S LINEENT=$$SETFLD^VALM1(SIZE,LINEENT,"SIZE")
.S LINEENT=$$SETFLD^VALM1(HLSENT,LINEENT,"SENT")
.S LINEENT=$$SETFLD^VALM1(SIZE-HLSENT,LINEENT,"PENDING")
.;D SET^VALM10(X,LINEENT)
.S ^TMP("HL",$J,X,0)=LINEENT
.S ^TMP("HL",$J,"B",X,LLE)=""
.S ^TMP("HL",$J,"IDX",X,X)=""
I (X=0) S ^TMP("HL",$J,1,0)="** No logical links have been defined **"
S VALMCNT=X
Q
;
HELP ; -- help code
S X="?" D DISP^XQORM1 W !!
Q
;
EXIT ; -- exit code
K ^TMP("HL",$J)
Q
;
EXPND ; -- expand code
N LOOP,MATCH,VALMY
S LOOP=""
D EN^VALM2(XQORNOD(0))
; -- find out what the user selected
I ('$D(VALMY)) S VALMBCK="" Q
F LOOP=$O(VALMY(LOOP)) Q:(LOOP="") D
.S MATCH=$O(^TMP("HL",$J,"B",LOOP,""))
; -- call entry to show individual messages
D EN^HLCSRES(MATCH)
; -- re-index files in case entries were re-queued
D INIT
Q
;