- HLCSREQ ;ALB/MFK - HL7 MESSAGE REQUEUER SCREEN # 3 ;02/16/2000 15:58 [ 04/02/2003 8:38 AM ]
- ;;1.6;HEALTH LEVEL SEVEN;**1004**;APR 1, 2003
- ;;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
- ;
- HLCSREQ ;ALB/MFK - HL7 MESSAGE REQUEUER SCREEN # 3 ;02/16/2000 15:58 [ 04/02/2003 8:38 AM ]
- +1 ;;1.6;HEALTH LEVEL SEVEN;**1004**;APR 1, 2003
- +2 ;;1.6;HEALTH LEVEL SEVEN;**61**;Oct 13, 1995
- EN ; -- main entry point
- +1 DO EN^VALM("HL MESSAGE REQUEUER - 1")
- +2 QUIT
- +3 ;
- HDR ; -- header code
- +1 NEW TMP
- +2 SET TMP="Known Logical Links"
- +3 SET VALMHDR(1)=$$SETSTR^VALM1(TMP,"",(40-($LENGTH(TMP)\2)),$LENGTH(TMP))
- +4 QUIT
- +5 ;
- INIT ; -- init variables and list array
- +1 ; -- build array of indices and queues
- +2 NEW LLE,X,LINEENT,NAME,SIZE,HLPOINT,HLSENT,ENTRY,HLSTAT,X
- +3 SET LLE=0
- SET X=0
- +4 FOR
- SET LLE=$ORDER(^HLCS(870,LLE))
- IF (LLE="")
- QUIT
- Begin DoDot:1
- +5 IF ('$DATA(^HLCS(870,LLE,2,0)))
- QUIT
- +6 SET LINEENT=""
- +7 SET SIZE=$PIECE(^HLCS(870,LLE,2,0),"^",4)
- +8 IF (SIZE="")
- SET SIZE=0
- +9 SET HLPOINT=""
- SET HLSENT=0
- +10 FOR
- SET HLPOINT=$ORDER(^HLCS(870,LLE,2,"B",HLPOINT))
- IF (HLPOINT="")
- QUIT
- Begin DoDot:2
- +11 SET ENTRY=$ORDER(^HLCS(870,LLE,2,"B",HLPOINT,""))
- +12 IF 'ENTRY
- QUIT
- +13 IF '$DATA(^HLCS(870,LLE,2,ENTRY,0))
- QUIT
- +14 SET HLSTAT=$PIECE($GET(^HLCS(870,LLE,2,ENTRY,0)),"^",2)
- +15 SET HLSENT=HLSENT+($SELECT(HLSTAT="P":0,1:1))
- End DoDot:2
- +16 SET NAME=$PIECE(^HLCS(870,LLE,0),"^",1)
- +17 SET X=X+1
- +18 SET LINEENT=$$SETFLD^VALM1(X,LINEENT,"NUMBER")
- +19 SET LINEENT=$$SETFLD^VALM1(NAME,LINEENT,"QUEUE")
- +20 SET LINEENT=$$SETFLD^VALM1(SIZE,LINEENT,"SIZE")
- +21 SET LINEENT=$$SETFLD^VALM1(HLSENT,LINEENT,"SENT")
- +22 SET LINEENT=$$SETFLD^VALM1(SIZE-HLSENT,LINEENT,"PENDING")
- +23 ;D SET^VALM10(X,LINEENT)
- +24 SET ^TMP("HL",$JOB,X,0)=LINEENT
- +25 SET ^TMP("HL",$JOB,"B",X,LLE)=""
- +26 SET ^TMP("HL",$JOB,"IDX",X,X)=""
- End DoDot:1
- +27 IF (X=0)
- SET ^TMP("HL",$JOB,1,0)="** No logical links have been defined **"
- +28 SET VALMCNT=X
- +29 QUIT
- +30 ;
- HELP ; -- help code
- +1 SET X="?"
- DO DISP^XQORM1
- WRITE !!
- +2 QUIT
- +3 ;
- EXIT ; -- exit code
- +1 KILL ^TMP("HL",$JOB)
- +2 QUIT
- +3 ;
- EXPND ; -- expand code
- +1 NEW LOOP,MATCH,VALMY
- +2 SET LOOP=""
- +3 DO EN^VALM2(XQORNOD(0))
- +4 ; -- find out what the user selected
- +5 IF ('$DATA(VALMY))
- SET VALMBCK=""
- QUIT
- +6 FOR LOOP=$ORDER(VALMY(LOOP))
- IF (LOOP="")
- QUIT
- Begin DoDot:1
- +7 SET MATCH=$ORDER(^TMP("HL",$JOB,"B",LOOP,""))
- End DoDot:1
- +8 ; -- call entry to show individual messages
- +9 DO EN^HLCSRES(MATCH)
- +10 ; -- re-index files in case entries were re-queued
- +11 DO INIT
- +12 QUIT
- +13 ;