| 1 | HLCSORAT ;ALB/MFK/jc - HEALTH LEVEL SEVEN ;07/13/99 15:20
|
---|
| 2 | ;;1.6;HEALTH LEVEL SEVEN;**57**;Oct 13, 1995
|
---|
| 3 | ;Report low level communications errors for serial links (HLLP,
|
---|
| 4 | ;X3.28) in file 870.
|
---|
| 5 | START ; Main Entry point
|
---|
| 6 | N DIR,DIC,X,Y,HLZ,LINE,HLERR,HLSORT,HLAAA,HLSTAT,HLLL,HLQUEUE,POP
|
---|
| 7 | N %ZIS,DTOUT,DUOUT,HLDONE,HLTMP,SET,FOO,CODES
|
---|
| 8 | S (HLERR,HLSTAT,LINE)=""
|
---|
| 9 | D PROMPT I (Y=-1)!($D(DUOUT))!($D(DTOUT)) Q
|
---|
| 10 | D OPEN G END:POP
|
---|
| 11 | I $D(IO("Q")) D QUEUED,HOME^%ZIS G END
|
---|
| 12 | U IO
|
---|
| 13 | REPORT ; Output data after gathering
|
---|
| 14 | S HLZ=0
|
---|
| 15 | ; GATHER AND SORT DATA
|
---|
| 16 | D ^HLCSORA1
|
---|
| 17 | I 'HLZ G NEXT
|
---|
| 18 | I HLDONE G END
|
---|
| 19 | F HLAAA=$Y:1:(IOSL-3) W !
|
---|
| 20 | I ($E(IOST,1,2)="C-") S DIR(0)="E" D ^DIR K DIR I Y=0!(Y="")!($D(DIRUT)) G END
|
---|
| 21 | NEXT ; PRINT THE DATA
|
---|
| 22 | D ^HLCSORA2
|
---|
| 23 | I 'HLZ W !,"No data found for this request"
|
---|
| 24 | END ;
|
---|
| 25 | ; Clean up. Kill the ^TMP and other assorted variables.
|
---|
| 26 | K ^TMP("HLCSORAT",$J)
|
---|
| 27 | I $D(ZTQUEUED) S ZTREQ="@" Q
|
---|
| 28 | K DIRUT,HLZ
|
---|
| 29 | D ^%ZISC
|
---|
| 30 | Q
|
---|
| 31 | PROMPT ; Find out how user wants report done
|
---|
| 32 | S HLLL=""
|
---|
| 33 | S DIR(0)="FAOU"
|
---|
| 34 | S DIR("A")="Select HL7 Logical Link: "
|
---|
| 35 | S DIR("B")="All Links"
|
---|
| 36 | D ^DIR
|
---|
| 37 | Q:$D(DTOUT)!($D(DUOUT))
|
---|
| 38 | I Y="All Links" S Y=0
|
---|
| 39 | I Y'=0 D
|
---|
| 40 | .S X=Y,DIC="^HLCS(870,",DIC(0)="EMQZ" D ^DIC K DIC
|
---|
| 41 | Q:$D(DTOUT)!($D(DUOUT))
|
---|
| 42 | S HLLL=$P(Y,"^",1)
|
---|
| 43 | I Y=-1 Q
|
---|
| 44 | S DIR(0)="S^I:IN QUEUE;O:OUT QUEUE;B:BOTH"
|
---|
| 45 | S DIR("A")="Select queue for report",DIR("B")="B" D ^DIR K DIR
|
---|
| 46 | S HLQUEUE=Y
|
---|
| 47 | I '("IOB"[Y) Q
|
---|
| 48 | S HLQUEUE=$S(HLQUEUE="B":"12",HLQUEUE="I":1,HLQUEUE="O":2)
|
---|
| 49 | S SET="",CODES=$$GET1^DID(870.019,2,"","POINTER")
|
---|
| 50 | F HLTMP=1:1 S FOO=$P(CODES,";",HLTMP) Q:(FOO="") D
|
---|
| 51 | .S SET=SET_$E(FOO,1,1)
|
---|
| 52 | ERR S DIR(0)="SOM^"_CODES_"ALL:ALL ERRORS;F:FINISH SELECTING ERRORS"
|
---|
| 53 | S DIR("A")="Select an error code to sort by"_$S(HLERR'="":" ("_HLERR_")",1:"")
|
---|
| 54 | S DIR("B")=$S((HLERR=""):"ALL",1:"F")
|
---|
| 55 | S DIR("?",1)="Select the list of errors that you would like to sort by. There are also"
|
---|
| 56 | S DIR("?",2)="two special selections. ALL means that you would like to sort on all the"
|
---|
| 57 | S DIR("?")="error codes. F means that you have finished selecting error codes."
|
---|
| 58 | D ^DIR K DIR
|
---|
| 59 | I ((HLERR'[Y)&(Y'="F")) S HLERR=HLERR_Y
|
---|
| 60 | I Y="ALL" S HLERR=SET
|
---|
| 61 | I (HLERR="")!($D(DUOUT))!($D(DTOUT)) S Y=-1 Q
|
---|
| 62 | I (Y'="ALL")&(Y'="F") G ERR
|
---|
| 63 | S SET="",CODES=$$GET1^DID(870.019,1,"","POINTER")
|
---|
| 64 | F HLTMP=1:1 S FOO=$P(CODES,";",HLTMP) Q:(FOO="") D
|
---|
| 65 | .S SET=SET_$E(FOO,1,1)
|
---|
| 66 | STAT S DIR(0)="SOM^"_CODES_"ALL:ALL STATUS;F:FINISH SELECTING STATUS CODES"
|
---|
| 67 | S DIR("A")="Select a status code to sort by"_$S(HLSTAT'="":" ("_HLSTAT_")",1:"")
|
---|
| 68 | S DIR("B")=$S((HLSTAT=""):"ALL",1:"F")
|
---|
| 69 | S DIR("?",1)="Select a status code to sort the report by. There are two special"
|
---|
| 70 | S DIR("?",2)="selections. ALL indicates you would like a report on all the statuses. The"
|
---|
| 71 | S DIR("?")="F means you are finished selecting statuses."
|
---|
| 72 | D ^DIR K DIR
|
---|
| 73 | I ((HLSTAT'[Y)&(Y'="F")) S HLSTAT=HLSTAT_Y
|
---|
| 74 | I Y="ALL" S HLSTAT=SET
|
---|
| 75 | I (HLSTAT="")!($D(DTOUT))!($D(DUOUT)) S Y=-1 Q
|
---|
| 76 | I (Y'="ALL")&(Y'="F") G STAT
|
---|
| 77 | S HLSORT=HLERR_"^"_HLSTAT
|
---|
| 78 | Q
|
---|
| 79 | QUEUED ; If queued, set up and kick in TASKMAN
|
---|
| 80 | S ZTRTN="REPORT^HLCSORAT",ZTDESC="HL7 LOGICAL LINK REPORT",ZTSAVE("HLLL")="",ZTSAVE("HLQUEUE")="",ZTSAVE("HLSORT")="" D ^%ZTLOAD
|
---|
| 81 | W !!,$S($D(ZTSK):"Request Queued",1:"Request Cancelled")
|
---|
| 82 | K ZTSK
|
---|
| 83 | Q
|
---|
| 84 | OPEN ; Open a device
|
---|
| 85 | S %ZIS="QM" D ^%ZIS
|
---|
| 86 | Q
|
---|