ORWMC ; slc/dcm -Medicine Calls ;4/2/98 15:02
;;3.0;ORDER ENTRY/RESULTS REPORTING;**10,109**;Dec 17, 1997
PROD(ROOT,DFN) ; Return procedures
; RPC: ORWMC PROCEDURES
; See RPC definition for details on input and output parameters
D GET(0)
Q
PROD1(ROOT,DFN) ; Return procedures
; RPC: ORWMC PROCEDURES
; See RPC definition for details on input and output parameters
D GET(1)
Q
GET(GSITE) ;Get the data
N MCDATA,I,X,X1,X2,ID,SITE
S MCDATA=$NA(^TMP("OR",$J,"MCAR","OT"))
S ROOT=$NA(^TMP("OR",$J,"MCAR","GUI"))
K @MCDATA,@ROOT
D EN^MCARPS2(DFN)
; -- reformat data array for rpc
S ID="",SITE=""
I $G(GSITE) S SITE=$$SITE^VASITE,SITE=$P(SITE,"^",2)_";"_$P(SITE,"^",3)_U
F S ID=$O(@MCDATA@(ID)) Q:ID="" D
. S @ROOT@(ID)=SITE_ID_U_@MCDATA@(ID)
;K @MCDATA
Q
;
RPT(ROOT,DFN,ORID) ; -- return medicine report
; RPC: ORWMC REPORT TEXT
; See RPC definition for details on input and output parameters
; N IORVON,IORVOFF S (IORVON,IORVOFF)=""
;
; -- init locals and globals
N ID,LCNT,ORVP,DA,MCARGDA,MCARPPS,MCPRO
S MCDATA=$NA(^TMP("OR",$J,"MCAR","OT"))
S ROOT=$NA(^TMP("ORXPND",$J))
K @ROOT ;K @MCDATA REMOVED
; -- set up procedure id and call to get report text
S ID=^TMP("OR",$J,"MCAR","OT",ORID),(DA,MCARGDA)=$P(ID,U,3),MCARPPS=$P(ID,U,4,5),MCPRO=$P(ID,U,12)
D MCPPROC^MCARP
S MCARGRTN=$P(ID,U,6)
D @MCARPPS
; -- set up counter and vp local for dfn for formating call
K @MCDATA
Q
;
TEST ; -- test to get exam list
N I,ROOT,DFN
S DFN=17
D PROD1(.ROOT,DFN)
W !,"Root: ",ROOT
S I=0 F S I=$O(@ROOT@(I)) Q:'I W !,@ROOT@(I)
Q
;
TEST1 ; -- test to print reprt for first 3 exams
N I,ROOT,ROOT1,L,X,DFN,XQY0,ORHFS
S DFN=17,XQY0="ORTEST",ORHFS=1
D PROD1(.ROOT,DFN)
W !,"Root: "_ROOT
S I=0 F S I=$O(@ROOT@(I)) Q:'I D Q
. S X=@ROOT@(I)
. D RPT(.ROOT,DFN,I)
. ;S L=0 F S L=$O(@ROOT@(L)) Q:'L W !,@ROOT@(L)
Q
ORWMC ; slc/dcm -Medicine Calls ;4/2/98 15:02
+1 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**10,109**;Dec 17, 1997
PROD(ROOT,DFN) ; Return procedures
+1 ; RPC: ORWMC PROCEDURES
+2 ; See RPC definition for details on input and output parameters
+3 DO GET(0)
+4 QUIT
PROD1(ROOT,DFN) ; Return procedures
+1 ; RPC: ORWMC PROCEDURES
+2 ; See RPC definition for details on input and output parameters
+3 DO GET(1)
+4 QUIT
GET(GSITE) ;Get the data
+1 NEW MCDATA,I,X,X1,X2,ID,SITE
+2 SET MCDATA=$NAME(^TMP("OR",$JOB,"MCAR","OT"))
+3 SET ROOT=$NAME(^TMP("OR",$JOB,"MCAR","GUI"))
+4 KILL @MCDATA,@ROOT
+5 DO EN^MCARPS2(DFN)
+6 ; -- reformat data array for rpc
+7 SET ID=""
SET SITE=""
+8 IF $GET(GSITE)
SET SITE=$$SITE^VASITE
SET SITE=$PIECE(SITE,"^",2)_";"_$PIECE(SITE,"^",3)_U
+9 FOR
SET ID=$ORDER(@MCDATA@(ID))
IF ID=""
QUIT
Begin DoDot:1
+10 SET @ROOT@(ID)=SITE_ID_U_@MCDATA@(ID)
End DoDot:1
+11 ;K @MCDATA
+12 QUIT
+13 ;
RPT(ROOT,DFN,ORID) ; -- return medicine report
+1 ; RPC: ORWMC REPORT TEXT
+2 ; See RPC definition for details on input and output parameters
+3 ; N IORVON,IORVOFF S (IORVON,IORVOFF)=""
+4 ;
+5 ; -- init locals and globals
+6 NEW ID,LCNT,ORVP,DA,MCARGDA,MCARPPS,MCPRO
+7 SET MCDATA=$NAME(^TMP("OR",$JOB,"MCAR","OT"))
+8 SET ROOT=$NAME(^TMP("ORXPND",$JOB))
+9 ;K @MCDATA REMOVED
KILL @ROOT
+10 ; -- set up procedure id and call to get report text
+11 SET ID=^TMP("OR",$JOB,"MCAR","OT",ORID)
SET (DA,MCARGDA)=$PIECE(ID,U,3)
SET MCARPPS=$PIECE(ID,U,4,5)
SET MCPRO=$PIECE(ID,U,12)
+12 DO MCPPROC^MCARP
+13 SET MCARGRTN=$PIECE(ID,U,6)
+14 DO @MCARPPS
+15 ; -- set up counter and vp local for dfn for formating call
+16 KILL @MCDATA
+17 QUIT
+18 ;
TEST ; -- test to get exam list
+1 NEW I,ROOT,DFN
+2 SET DFN=17
+3 DO PROD1(.ROOT,DFN)
+4 WRITE !,"Root: ",ROOT
+5 SET I=0
FOR
SET I=$ORDER(@ROOT@(I))
IF 'I
QUIT
WRITE !,@ROOT@(I)
+6 QUIT
+7 ;
TEST1 ; -- test to print reprt for first 3 exams
+1 NEW I,ROOT,ROOT1,L,X,DFN,XQY0,ORHFS
+2 SET DFN=17
SET XQY0="ORTEST"
SET ORHFS=1
+3 DO PROD1(.ROOT,DFN)
+4 WRITE !,"Root: "_ROOT
+5 SET I=0
FOR
SET I=$ORDER(@ROOT@(I))
IF 'I
QUIT
Begin DoDot:1
+6 SET X=@ROOT@(I)
+7 DO RPT(.ROOT,DFN,I)
+8 ;S L=0 F S L=$O(@ROOT@(L)) Q:'L W !,@ROOT@(L)
End DoDot:1
QUIT
+9 QUIT