LRMITSE ;VA/SLC/STAFF - MICRO TREND ENTRY ;JUL 06, 2010 3:14 PM
;;5.2;LAB SERVICE;**96,257,1027**;NOV 01, 1997
; from LRMITS
; collect input data for trend report
; LRAP(drug node)=organism # if antibiotic pattern defined
; LRDETAIL detailed report with patient results
; LREND flag to end program
; LRHELP help frame
; LRLOS length of stay
; LRMERGE none/spec/col sample/any "N"/"S"/"C"/"A"
; LRM(type of report,"A")="" all values
; LRM(type of report,"S",value #)=value name selected values
; LROTYPE(type of organism)="" organism types "B"/"F"/"M"/"P"/"V"
; LRSORG(type of organism,organism #)="" if specific organisms selected
; LRSORT Defines antibiotic reporting order by alph or print order
; LRSUSR(interp)="" interpretations forced to 'R'
; LRSUSS(interp)="" interpretations forced to 'S'
; LRUNK "Unknown" - used for any value
; LRTBEG begin time
; LRTEND end time
;
W @IOF,?30,"MICROBIOLOGY TREND REPORT",!
; initialize variables and defaults
K LRAP,LRM,LROTYPE,LRSORG,LRSUSR,LRSUSS
DIV ;MULTIDIVISIONAL PATCH LR*5.2*257 - 3/01
;ASK IF WANT REPORT BY DIVISION
S LRASK="DIV",LRHELP="LRMITS OPTION"
W !!,"Report by: DIVISION"
S LRPX=$S($D(LRM(LRASK,"A")):"All",1:"No") K DIC,DIR,LRM(LRASK)
S DIR(0)="SAM^A:All;S:Selected;N:No",DIR("A")="(A)ll Divisions, (S)elected Divisions, or (N)o Division Report? ",DIR("B")=LRPX
S DIR("?")="Enter 'A'll, 'S'elected, or 'N'o.",DIR("??")=LRHELP
S DIR("?",1)="Select 'A' to obtain a report grouped by all divisions."
S DIR("?",2)="Select 'S' to obtain a report grouped for selected divisions."
S DIR("?",3)="Select 'N' if you DO NOT want a report grouped by division."
S DIR("?",4)="Enter '^' to exit."
D ^DIR I $D(DIRUT) S LREND=1 Q
I Y="A" S LRM(LRASK,"A")=""
; if specific values are requested, obtain selections
I Y="S" D
.S DIC=4,DIC(0)="AEMOQ",DIC("A")="Select Division: " F D ^DIC Q:Y<1 S LRM(LRASK,"S",+Y)=$P(Y,U,2),LRSDIV=+Y
K DIC I $D(DTOUT) S LREND=1
;
S LRDETAIL=0,LRHELP="LRMITS OPTION",LRLOS=0,LRMERGE="S",LROTYPE("B")="",LRUNK="Unknown"
S (LRSUSR("I"),LRSUSR("R"),LRSUSS("MS"),LRSUSS("S"))=""
S OK=1
S LRBLIK=""
D FILSCAN ;<------DRH patch 96
Q:'OK
I $D(^TMP("LRM",$J)) D QUERY
F LRX="O","S","L","D","P","C" I $D(^LAB(69.9,1,"MIT","B",LRX)) S LRM(LRX,"A")=""
; default reports
I 'OK S LREND=1 QUIT
SORT K DIR S DIR(0)="SAMO^A:Alphabetically;P:Print Order",DIR("B")="A"
S DIR("A")="Sort the Antibiotic output by: "
S DIR("?")="Enter 'A'lphabetically or 'P'rint Order"
S DIR("?",1)="This allows you to choose how the Antibiotics will be"
S DIR("?",2)="sorted. Alphabetically will sort by the mnemonics and "
S DIR("?",3)="Print Order will use the order defined in file #62.06"
S DIR("?",4)="ANTIMICROBIAL SUSCEPTIBILITY" D ^DIR I $D(DIRUT) S LREND=1 Q
S LRSORT=$S(Y="P":1,1:0)
;
K DIR S DIR(0)="Y",DIR("A")="Use default reports HERE",DIR("B")="YES"
S DIR("?")="Enter 'Y'es or 'N'o",DIR("??")=LRHELP
S DIR("?",1)="Default reports are setup in the Laboratory Site file, 69.9."
S DIR("?",2)="If you answer 'NO', you can select individual antibiotic trend reports"
S DIR("?",3)="grouped by: organism, site/specimen, location, patient, physician, and/or"
S DIR("?",4)="collection sample. You can select all items or a single item for each group."
S DIR("?",5)="Example: a trend report on a single patient."
D ^DIR I $D(DIRUT) G SORT
K DIR,LRX
; get specific input if not using default data
I 'Y D ^LRMITSEC Q:LREND D ^LRMITSES Q:LREND
; if no reports selected quit
I '$D(LRM) W !,"No reports were selected!" S LREND=1 Q
; get date range
W ! K DIR S DIR(0)="D^::AE",DIR("A")="Start Date"
S DIR("?")="^D HELP^%DTC",DIR("??")=LRHELP
D ^DIR I $D(DIRUT) S LREND=1 Q
S LRTBEG=Y\1 ;S LRTBEG=$E(Y,1,5)_"00"
K DIR S DIR(0)="D^::AE",DIR("A")="End Date"
S DIR("?")="^D HELP^%DTC",DIR("??")=LRHELP
D ^DIR I $D(DIRUT) S LREND=1 Q
S LRTEND=Y\1 ;S LRTEND=$E(Y,1,5)_"00"
I LRTEND<LRTBEG S X=LRTBEG,LRTBEG=LRTEND,LRTEND=X
W ! K DIR,LRHELP,X,Y
Q
;-------------------LR*5.2*96------------------------------------
FILSCAN ; scan ^LAB(62.06 FOR non std DEFAULT INTERPS ie RES, SUS etc <--
K ^TMP("LRM",$J)
S LRSCN("R")="R",LRSCN("MS")="MS",LRSCN("I")="I",LRSCN("S")="S"
S LRTIC=0,LRCNT=1
F S LRTIC=$O(^LAB(62.06,LRTIC)) Q:+LRTIC'>0 D
. S LRCN=0
. F S LRCN=$O(^LAB(62.06,LRTIC,1,LRCN)) Q:+LRCN'>0 S NODE=^(LRCN,0) D
.. S NODE=$P(NODE,U,2) Q:NODE?1P.E!(+NODE'=0) I 'NODE D MISSNG
.. F LRTAC="I","S","R","MS" S:LRTAC=NODE LRGOT1=1
.. Q:NODE="" I $G(LRGOT1)'=1 S ^TMP("LRM",$J,NODE)="" S LRCNT=LRCNT+1
.. K LRGOT1
K NODE,LRCN,LRSCN,LRTIC,LRTAC
Q
MISSNG ;
Q:$G(LRBLIK)=1
;W !!,"You have required fields without data. Please check file 62.06 for deletions.",$C(7)
;Commented out for future use
S LRBLIK=1
Q
QUERY ; Present to user non std entries from ^TMP classify per std.
; LRSUSR(interp)="" interpretations forced to 'R'
; LRSUSS(interp)="" interpretations forced to 'S'
W !!,"I scanned your Antimicrobial Susceptibility File and was"
W !,"surprised to see you have non-standard entries in the default"
W !,"interpretation field."
W !!,"In order for me to proceed, I need to know what the entry means."
K DIR
S DIR(0)="SOM^1:RESISTANT;2:SUSCEPTIBLE"
S DIR("A")="Please enter your response here"
S LRNTRP="",OK=1
F S LRNTRP=$O(^TMP("LRM",$J,LRNTRP)) Q:LRNTRP=""!'OK W !!!,?32,"*****",LRNTRP,"*****" D
. Q:'$D(LRNTRP) D ^DIR
. S:$D(DIRUT) OK="" I 'OK QUIT
. I Y=1 S LRSUSR(LRNTRP)=""
. E S LRSUSS(LRNTRP)=""
K ^TMP("LRM")
K LRNTRP
;---------------------------------------------------------------------
Q
LRMITSE ;VA/SLC/STAFF - MICRO TREND ENTRY ;JUL 06, 2010 3:14 PM
+1 ;;5.2;LAB SERVICE;**96,257,1027**;NOV 01, 1997
+2 ; from LRMITS
+3 ; collect input data for trend report
+4 ; LRAP(drug node)=organism # if antibiotic pattern defined
+5 ; LRDETAIL detailed report with patient results
+6 ; LREND flag to end program
+7 ; LRHELP help frame
+8 ; LRLOS length of stay
+9 ; LRMERGE none/spec/col sample/any "N"/"S"/"C"/"A"
+10 ; LRM(type of report,"A")="" all values
+11 ; LRM(type of report,"S",value #)=value name selected values
+12 ; LROTYPE(type of organism)="" organism types "B"/"F"/"M"/"P"/"V"
+13 ; LRSORG(type of organism,organism #)="" if specific organisms selected
+14 ; LRSORT Defines antibiotic reporting order by alph or print order
+15 ; LRSUSR(interp)="" interpretations forced to 'R'
+16 ; LRSUSS(interp)="" interpretations forced to 'S'
+17 ; LRUNK "Unknown" - used for any value
+18 ; LRTBEG begin time
+19 ; LRTEND end time
+20 ;
+21 WRITE @IOF,?30,"MICROBIOLOGY TREND REPORT",!
+22 ; initialize variables and defaults
+23 KILL LRAP,LRM,LROTYPE,LRSORG,LRSUSR,LRSUSS
DIV ;MULTIDIVISIONAL PATCH LR*5.2*257 - 3/01
+1 ;ASK IF WANT REPORT BY DIVISION
+2 SET LRASK="DIV"
SET LRHELP="LRMITS OPTION"
+3 WRITE !!,"Report by: DIVISION"
+4 SET LRPX=$SELECT($DATA(LRM(LRASK,"A")):"All",1:"No")
KILL DIC,DIR,LRM(LRASK)
+5 SET DIR(0)="SAM^A:All;S:Selected;N:No"
SET DIR("A")="(A)ll Divisions, (S)elected Divisions, or (N)o Division Report? "
SET DIR("B")=LRPX
+6 SET DIR("?")="Enter 'A'll, 'S'elected, or 'N'o."
SET DIR("??")=LRHELP
+7 SET DIR("?",1)="Select 'A' to obtain a report grouped by all divisions."
+8 SET DIR("?",2)="Select 'S' to obtain a report grouped for selected divisions."
+9 SET DIR("?",3)="Select 'N' if you DO NOT want a report grouped by division."
+10 SET DIR("?",4)="Enter '^' to exit."
+11 DO ^DIR
IF $DATA(DIRUT)
SET LREND=1
QUIT
+12 IF Y="A"
SET LRM(LRASK,"A")=""
+13 ; if specific values are requested, obtain selections
+14 IF Y="S"
Begin DoDot:1
+15 SET DIC=4
SET DIC(0)="AEMOQ"
SET DIC("A")="Select Division: "
FOR
DO ^DIC
IF Y<1
QUIT
SET LRM(LRASK,"S",+Y)=$PIECE(Y,U,2)
SET LRSDIV=+Y
End DoDot:1
+16 KILL DIC
IF $DATA(DTOUT)
SET LREND=1
+17 ;
+18 SET LRDETAIL=0
SET LRHELP="LRMITS OPTION"
SET LRLOS=0
SET LRMERGE="S"
SET LROTYPE("B")=""
SET LRUNK="Unknown"
+19 SET (LRSUSR("I"),LRSUSR("R"),LRSUSS("MS"),LRSUSS("S"))=""
+20 SET OK=1
+21 SET LRBLIK=""
+22 ;<------DRH patch 96
DO FILSCAN
+23 IF 'OK
QUIT
+24 IF $DATA(^TMP("LRM",$JOB))
DO QUERY
+25 FOR LRX="O","S","L","D","P","C"
IF $DATA(^LAB(69.9,1,"MIT","B",LRX))
SET LRM(LRX,"A")=""
+26 ; default reports
+27 IF 'OK
SET LREND=1
QUIT
SORT KILL DIR
SET DIR(0)="SAMO^A:Alphabetically;P:Print Order"
SET DIR("B")="A"
+1 SET DIR("A")="Sort the Antibiotic output by: "
+2 SET DIR("?")="Enter 'A'lphabetically or 'P'rint Order"
+3 SET DIR("?",1)="This allows you to choose how the Antibiotics will be"
+4 SET DIR("?",2)="sorted. Alphabetically will sort by the mnemonics and "
+5 SET DIR("?",3)="Print Order will use the order defined in file #62.06"
+6 SET DIR("?",4)="ANTIMICROBIAL SUSCEPTIBILITY"
DO ^DIR
IF $DATA(DIRUT)
SET LREND=1
QUIT
+7 SET LRSORT=$SELECT(Y="P":1,1:0)
+8 ;
+9 KILL DIR
SET DIR(0)="Y"
SET DIR("A")="Use default reports HERE"
SET DIR("B")="YES"
+10 SET DIR("?")="Enter 'Y'es or 'N'o"
SET DIR("??")=LRHELP
+11 SET DIR("?",1)="Default reports are setup in the Laboratory Site file, 69.9."
+12 SET DIR("?",2)="If you answer 'NO', you can select individual antibiotic trend reports"
+13 SET DIR("?",3)="grouped by: organism, site/specimen, location, patient, physician, and/or"
+14 SET DIR("?",4)="collection sample. You can select all items or a single item for each group."
+15 SET DIR("?",5)="Example: a trend report on a single patient."
+16 DO ^DIR
IF $DATA(DIRUT)
GOTO SORT
+17 KILL DIR,LRX
+18 ; get specific input if not using default data
+19 IF 'Y
DO ^LRMITSEC
IF LREND
QUIT
DO ^LRMITSES
IF LREND
QUIT
+20 ; if no reports selected quit
+21 IF '$DATA(LRM)
WRITE !,"No reports were selected!"
SET LREND=1
QUIT
+22 ; get date range
+23 WRITE !
KILL DIR
SET DIR(0)="D^::AE"
SET DIR("A")="Start Date"
+24 SET DIR("?")="^D HELP^%DTC"
SET DIR("??")=LRHELP
+25 DO ^DIR
IF $DATA(DIRUT)
SET LREND=1
QUIT
+26 ;S LRTBEG=$E(Y,1,5)_"00"
SET LRTBEG=Y\1
+27 KILL DIR
SET DIR(0)="D^::AE"
SET DIR("A")="End Date"
+28 SET DIR("?")="^D HELP^%DTC"
SET DIR("??")=LRHELP
+29 DO ^DIR
IF $DATA(DIRUT)
SET LREND=1
QUIT
+30 ;S LRTEND=$E(Y,1,5)_"00"
SET LRTEND=Y\1
+31 IF LRTEND<LRTBEG
SET X=LRTBEG
SET LRTBEG=LRTEND
SET LRTEND=X
+32 WRITE !
KILL DIR,LRHELP,X,Y
+33 QUIT
+34 ;-------------------LR*5.2*96------------------------------------
FILSCAN ; scan ^LAB(62.06 FOR non std DEFAULT INTERPS ie RES, SUS etc <--
+1 KILL ^TMP("LRM",$JOB)
+2 SET LRSCN("R")="R"
SET LRSCN("MS")="MS"
SET LRSCN("I")="I"
SET LRSCN("S")="S"
+3 SET LRTIC=0
SET LRCNT=1
+4 FOR
SET LRTIC=$ORDER(^LAB(62.06,LRTIC))
IF +LRTIC'>0
QUIT
Begin DoDot:1
+5 SET LRCN=0
+6 FOR
SET LRCN=$ORDER(^LAB(62.06,LRTIC,1,LRCN))
IF +LRCN'>0
QUIT
SET NODE=^(LRCN,0)
Begin DoDot:2
+7 SET NODE=$PIECE(NODE,U,2)
IF NODE?1P.E!(+NODE'=0)
QUIT
IF 'NODE
DO MISSNG
+8 FOR LRTAC="I","S","R","MS"
IF LRTAC=NODE
SET LRGOT1=1
+9 IF NODE=""
QUIT
IF $GET(LRGOT1)'=1
SET ^TMP("LRM",$JOB,NODE)=""
SET LRCNT=LRCNT+1
+10 KILL LRGOT1
End DoDot:2
End DoDot:1
+11 KILL NODE,LRCN,LRSCN,LRTIC,LRTAC
+12 QUIT
MISSNG ;
+1 IF $GET(LRBLIK)=1
QUIT
+2 ;W !!,"You have required fields without data. Please check file 62.06 for deletions.",$C(7)
+3 ;Commented out for future use
+4 SET LRBLIK=1
+5 QUIT
QUERY ; Present to user non std entries from ^TMP classify per std.
+1 ; LRSUSR(interp)="" interpretations forced to 'R'
+2 ; LRSUSS(interp)="" interpretations forced to 'S'
+3 WRITE !!,"I scanned your Antimicrobial Susceptibility File and was"
+4 WRITE !,"surprised to see you have non-standard entries in the default"
+5 WRITE !,"interpretation field."
+6 WRITE !!,"In order for me to proceed, I need to know what the entry means."
+7 KILL DIR
+8 SET DIR(0)="SOM^1:RESISTANT;2:SUSCEPTIBLE"
+9 SET DIR("A")="Please enter your response here"
+10 SET LRNTRP=""
SET OK=1
+11 FOR
SET LRNTRP=$ORDER(^TMP("LRM",$JOB,LRNTRP))
IF LRNTRP=""!'OK
QUIT
WRITE !!!,?32,"*****",LRNTRP,"*****"
Begin DoDot:1
+12 IF '$DATA(LRNTRP)
QUIT
DO ^DIR
+13 IF $DATA(DIRUT)
SET OK=""
IF 'OK
QUIT
+14 IF Y=1
SET LRSUSR(LRNTRP)=""
+15 IF '$TEST
SET LRSUSS(LRNTRP)=""
End DoDot:1
+16 KILL ^TMP("LRM")
+17 KILL LRNTRP
+18 ;---------------------------------------------------------------------
+19 QUIT