ORITEST ; SLC/AGP - Information panel and editor tester ;Nov 07, 2025@09:47:05
;;3.0;ORDER ENTRY/RESULTS REPORTING;**508**;Dec 17, 1997;Build 39
;
; Reference to ^AUPNVSIT( in ICR #1990
;
Q
;
CALLRPC(TARRAY) ;
N ARRAY,ERROR,IJSON,OJSON
D ENCODE^XLFJSON("TARRAY","IJSON","ERROR")
D GETCLICK^ORIRPCCL(.OJSON,.IJSON)
D DECODE^XLFJSON($NA(^TMP("ORIRPCCL CLICKEVENT",$J)),"ARRAY","ERROR")
I $G(ARRAY("success"))="false" W !,"On CLick RPC Result: failed",!,ARRAY("error") Q
I $D(ARRAY("editor")) W !,"On CLick RPC Result: passed",!,"Editor: "_$G(ARRAY("editor","name")) Q
W !,"On CLick RPC Result: passed",!,$G(ARRAY("results"))
Q
;
GETPAT() ;
N DIC,DIROUT,DIRUT,DTOUT,DUOUT,Y
S DIC=2,DIC("A")="Select Patient: "
S DIC(0)="AEQMZ"
GPAT1 D ^DIC
I $D(DIROUT)!$D(DIRUT) Q 0
I $D(DTOUT)!$D(DUOUT) Q 0
I +$P(Y,U,1)=-1 G GPAT1
Q +$P(Y,U,1)
;
PANE ;
N ACTION,DFN,COMPS,ERROR,HASACT,IDX,IIDX,IJSON,NUM,NUMARR,ORARRAY,ORERROR
N SARRAY,SECT,SIDX,SUB,TARRAY
S DFN=$$GETPAT
I DFN'>0 W !,"No patient selected" Q
S SUB="ORITEST TESTER"
S TARRAY("patientId")=DFN,TARRAY("package")="ORDER ENTRY/RESULTS REPORTING",TARRAY("user")=DUZ
D ENCODE^XLFJSON("TARRAY","IJSON","ERROR")
D GETPANELS^ORIRPC(.ORARRAY,.IJSON)
D DECODE^XLFJSON($NA(^TMP("ORIRPC GETPANELS",$J)),$NA(^TMP(SUB,$J)),"ORERROR")
S IDX=0 F S IDX=$O(^TMP(SUB,$J,"sections",IDX)) Q:IDX'>0 D
.M SECT=^TMP(SUB,$J,"sections",IDX)
.S SARRAY(IDX,"abbreviatedDisplayText")=SECT("abbreviatedDisplayText")
.S SARRAY(IDX,"displayText")=SECT("displayText")
.S SARRAY(IDX,"id")=SECT("sectionId"),SARRAY("index",SECT("sectionId"))=IDX
I $D(ORERROR) W !,"Error decoding inputs" Q
I '$D(^TMP("ORIRPC GETPANELS",$J)) W !,"No results returned" Q
S IDX=0,IIDX=0 F S IDX=$O(^TMP(SUB,$J,"presentation",IDX)) Q:IDX'>0 D
.K COMPS
.M COMPS=^TMP(SUB,$J,"presentation",IDX)
.S IIDX=IIDX+1 D POPSECTARRAY(.COMPS,.SARRAY,IDX)
;
S SIDX=0,ACTION=0 F S SIDX=$O(SARRAY(SIDX)) Q:SIDX'>0 D
.W !,"SECTION: "_SIDX_" "_SARRAY(SIDX,"abbreviatedDisplayText")_" "_SARRAY(SIDX,"displayText")
.S IDX=0 F S IDX=$O(SARRAY(SIDX,"items",IDX)) Q:IDX'>0 D
..S NUM=0 F S NUM=$O(SARRAY(SIDX,"items",IDX,NUM)) Q:NUM'>0 D
...W !,SARRAY(SIDX,"items",IDX,NUM) I ACTION Q
I $D(SARRAY("actionIndex")) D TESTACT(SUB,DFN,.SARRAY)
Q
;
POPSECTARRAY(COMPS,SARRAY,IDX) ;
N ARRAY,ACT,ETYPE,IEN,NIDX,PAD,SID,SIDX,STR,TMP
S SID=COMPS("sectionId") I SID="" Q
S SIDX=$G(SARRAY("index",SID)) I +SIDX=0 Q
S PAD=" ",NIDX=0
S STR=$$LJ^XLFSTR(IDX,5,PAD)_$G(COMPS("abbreviatedDisplayText"))_" "_$G(COMPS("displayText"))
;S IDX=$O(SARRAY(SIDX,"items",""),-1)+1
S NIDX=NIDX+1,SARRAY(SIDX,"items",IDX,NIDX)=STR
S NIDX=NIDX+1,SARRAY(SIDX,"items",IDX,NIDX)=$$LJ^XLFSTR(" ",5,PAD)_$G(COMPS("name"))_$S($G(COMPS("disabled"))="true":" Disabled/No Action to take",1:"")
;
S ACT=$G(COMPS("action")) I ACT'="actNone" S SARRAY("actionIndex",IDX)=$G(COMPS("abbreviatedDisplayText"))_" "_$G(COMPS("displayText"))
S IEN=$O(^ORI(101.73,"G",ACT,""))
S NIDX=NIDX+1,SARRAY(SIDX,"items",IDX,NIDX)=$$LJ^XLFSTR(" ",5,PAD)_"Action: "_$P($G(^ORI(101.73,IEN,0)),U)
;
S NIDX=NIDX+1,SARRAY(SIDX,"items",IDX,NIDX)=$$LJ^XLFSTR(" ",5,PAD)_"Form Type: "_$G(COMPS("popOut"))
S NIDX=NIDX+1,SARRAY(SIDX,"items",IDX,NIDX)=$$LJ^XLFSTR(" ",5,PAD)_"Call Detail RPC: "_$G(COMPS("callDetailRPC"))
Q
;
SETDATA(IDX,RIDX,DATANAME,REQDATA) ;
N FN,GBL,IEN,NAME,PROMPT
S IEN=+$O(^ORI(101.73,"G",DATANAME,"")) I IEN'>0 W !,DATANAME_" not found." Q
S NAME=$P($G(^ORI(101.73,IEN,0)),U) I NAME="" W !,NAME_" not found."
I DATANAME="dataVisitInformation" D VISIT(DATANAME,NAME,.REQDATA) Q
D LOOKUP(DATANAME,NAME,.REQDATA)
I $D(REQDATA(DATANAME)) Q
D FREETEXT(DATANAME,NAME,.REQDATA)
I $D(REQDATA(DATANAME)) Q
Q
;
SETREQ(SUB,IDX,REQDATA) ;
N DATANAME,RIDX
S RIDX=0
F S RIDX=$O(^TMP(SUB,$J,"presentation",IDX,"requiredData",RIDX)) Q:RIDX'>0 D
.S DATANAME=$G(^TMP(SUB,$J,"presentation",IDX,"requiredData",RIDX,"dataName"))
.D SETDATA(IDX,RIDX,DATANAME,.REQDATA)
Q
;
SHOWRESULT(COMPS) ;
I COMPS("action")="actNone",COMPS("action")="actShowEditor" Q
I $G(COMPS("action"))="actShowUrl" W !,$G(COMPS("url")) Q
W !,$G(COMPS("detailText"))
Q
;
TESTACT(SUB,DFN,SARRAY) ;
N COMPS,DATANAME,DIR,DIROUT,DIRUT,DTOUT,DUOUT
N ID,IDX,NAME,REQDATA,RIDX,STR,TARRAY,TXT,VALUE,Y
TESTACT1 ;
W !
S DIR("A")="Test Information Panel Action"
S DIR(0)="Y^"
D ^DIR
I Y'=1 Q
;which panel to process individual panel onClickEvent
S STR=""
S DIR("A")="Select panel number to continue"
S IDX=0 F S IDX=$O(SARRAY("actionIndex",IDX)) Q:IDX'>0 D
.S TXT=$E(SARRAY("actionIndex",IDX),1,50)
.I $L(SARRAY("actionIndex",IDX))>50 S TXT=TXT_"..."
.S STR=STR_$S(STR="":IDX_":"_TXT,1:";"_IDX_":"_TXT)
I STR="" Q
S DIR(0)="S^"_STR
D ^DIR
I $D(DTOUT)!$D(DIRUT) Q
I $D(DUOUT) G TESTACT1
I Y<1 Q
S IDX=+Y
M COMPS=^TMP(SUB,$J,"presentation",IDX)
S ID=$G(COMPS("panelId"))
S TARRAY("id")=ID,TARRAY("patientId")=DFN
S TARRAY("package")="ORDER ENTRY\/RESULTS REPORTING",TARRAY("isNational")="true"
S TARRAY("connectionUser")=DUZ
I $G(COMPS("callDetailRPC"))'="true" D SHOWRESULT(.COMPS) Q
I $D(^TMP(SUB,$J,"presentation",IDX,"requiredData")) D SETREQ(SUB,IDX,.REQDATA)
I $D(REQDATA) D
.S RIDX=0,DATANAME=""
.F S DATANAME=$O(REQDATA(DATANAME)) Q:DATANAME="" D
..S RIDX=RIDX+1
..S TARRAY("requiredData",RIDX,"dataType","name")=DATANAME
..S NAME=""
..F S NAME=$O(REQDATA(DATANAME,NAME)) Q:NAME="" D
...S VALUE=$G(REQDATA(DATANAME,NAME))
...S TARRAY("requiredData",RIDX,"dataType","data",NAME)=VALUE
D CALLRPC(.TARRAY)
Q
;
FREETEXT(DATANAME,NAME,REQDATA) ;
N DIR,DIROUT,DIRUT,DTOUT,DUOUT,Y
S DIR="F^1:100"
S DIR("A")="Enter the "_NAME_" value:"
D ^DIR
I $D(DTOUT)!$D(DIRUT)!(DUOUT) Q
I Y'="" S REQDATA(DATANAME,"id")=Y
Q
;
LOOKUP(DATANAME,NAME,REQDATA) ;
N GBL,NODE,PROMPT
;("^ORI(101.72,","Select Information Panel: ","","","")
S GBL="",PROMPT="Select the "_NAME_": "
I DATANAME="dataEncounterProvider" S GBL="^VA(200,"
I DATANAME="dataUserInformation" S GBL="^VA(200,"
I GBL="" Q
S NODE=$$FINDBYNAME^ORIMGR(GBL,PROMPT,"","","")
I +$P(NODE,U)'>0 Q
S REQDATA(DATANAME,"id")=$P(NODE,U)
S REQDATA(DATANAME,"name")=$P(NODE,U,2)
Q
;
VISIT(DATANAME,NAME,REQDATA) ;
N DATETIME,DIR,DIROUT,DIRUT,DTOUT,DUOUT
N LOC,LOCNAME,NODE,SVC,VIEN,VSTR,Y
W !,"Visit Information is required."
W !,"An existing visit can be selected or you can select the visit components"
S DIR("A")="Select an existing visit or build a visit"
S DIR(0)="S^B:Build Visit;E:Existing Visit"
D ^DIR
I $D(DTOUT)!($D(DIRUT))!($D(DUOUT)) Q
S LOC="",LOCNAME="",DATETIME=0,SVC=""
I Y="E" D Q
.S VIEN=$$FINDBYNAME^ORIMGR("^AUPNVSIT(","Select an existing visit: ","","","")
.I +VIEN'>0 Q
.S NODE=$G(^AUPNVSIT(VIEN,0))
.S LOC=$P(NODE,U,22) I LOC>0 S LOCNAME=$P($G(^SC(LOC,0)),U)
.S SVC=$P(NODE,U,7)
.S DATETIME=$P(NODE,U)
.S VSTR=LOC_";"_DATETIME_";"_SVC
.S REQDATA(DATANAME,"id")=VIEN,REQDATA(DATANAME,"locId")=LOCNAME
.S REQDATA(DATANAME,"locName")=LOCNAME,REQDATA(DATANAME,"visitDateTime")=DATETIME
.S REQDATA(DATANAME,"visitType")=SVC,REQDATA("DATANAME","visitString")=VSTR
;
S LOC=$$FINDBYNAME^ORIMGR("^SC(","Select Hospital Location: ","","","")
I +LOC'>0 Q
S REQDATA(DATANAME,"locId")=+$P(LOC,U),REQDATA(DATANAME,"locName")=$P(LOC,U,2)
S DIR("A")="Select the service category"
S DIR(0)="S^A:Ambulatory;I:Inpatient Appointment;D:Daily Hospitalization Visit;H:Initial Admission Encounter;T:Telephone;X:Ancillary Services"
D ^DIR
I $D(DTOUT)!($D(DIRUT))!($D(DUOUT)) Q
I Y="" Q
S SVC=Y
S REQDATA(DATANAME,"visitType")=SVC
S DIR(0)="D^2880101:"_DT_":EX"
D ^DIR
I Y'>0 Q
S DATETIME=Y
S REQDATA(DATANAME,"visitDateTime")=DATETIME
S VSTR=+$P(LOC,U)_";"_DATETIME_";"_SVC
S REQDATA(DATANAME,"visitString")=VSTR
Q
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HORITEST 7934 printed May 25, 2026@12:35:11 Page 2
ORITEST ; SLC/AGP - Information panel and editor tester ;Nov 07, 2025@09:47:05
+1 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**508**;Dec 17, 1997;Build 39
+2 ;
+3 ; Reference to ^AUPNVSIT( in ICR #1990
+4 ;
+5 QUIT
+6 ;
CALLRPC(TARRAY) ;
+1 NEW ARRAY,ERROR,IJSON,OJSON
+2 DO ENCODE^XLFJSON("TARRAY","IJSON","ERROR")
+3 DO GETCLICK^ORIRPCCL(.OJSON,.IJSON)
+4 DO DECODE^XLFJSON($NAME(^TMP("ORIRPCCL CLICKEVENT",$JOB)),"ARRAY","ERROR")
+5 IF $GET(ARRAY("success"))="false"
WRITE !,"On CLick RPC Result: failed",!,ARRAY("error")
QUIT
+6 IF $DATA(ARRAY("editor"))
WRITE !,"On CLick RPC Result: passed",!,"Editor: "_$GET(ARRAY("editor","name"))
QUIT
+7 WRITE !,"On CLick RPC Result: passed",!,$GET(ARRAY("results"))
+8 QUIT
+9 ;
GETPAT() ;
+1 NEW DIC,DIROUT,DIRUT,DTOUT,DUOUT,Y
+2 SET DIC=2
SET DIC("A")="Select Patient: "
+3 SET DIC(0)="AEQMZ"
GPAT1 DO ^DIC
+1 IF $DATA(DIROUT)!$DATA(DIRUT)
QUIT 0
+2 IF $DATA(DTOUT)!$DATA(DUOUT)
QUIT 0
+3 IF +$PIECE(Y,U,1)=-1
GOTO GPAT1
+4 QUIT +$PIECE(Y,U,1)
+5 ;
PANE ;
+1 NEW ACTION,DFN,COMPS,ERROR,HASACT,IDX,IIDX,IJSON,NUM,NUMARR,ORARRAY,ORERROR
+2 NEW SARRAY,SECT,SIDX,SUB,TARRAY
+3 SET DFN=$$GETPAT
+4 IF DFN'>0
WRITE !,"No patient selected"
QUIT
+5 SET SUB="ORITEST TESTER"
+6 SET TARRAY("patientId")=DFN
SET TARRAY("package")="ORDER ENTRY/RESULTS REPORTING"
SET TARRAY("user")=DUZ
+7 DO ENCODE^XLFJSON("TARRAY","IJSON","ERROR")
+8 DO GETPANELS^ORIRPC(.ORARRAY,.IJSON)
+9 DO DECODE^XLFJSON($NAME(^TMP("ORIRPC GETPANELS",$JOB)),$NAME(^TMP(SUB,$JOB)),"ORERROR")
+10 SET IDX=0
FOR
SET IDX=$ORDER(^TMP(SUB,$JOB,"sections",IDX))
if IDX'>0
QUIT
Begin DoDot:1
+11 MERGE SECT=^TMP(SUB,$JOB,"sections",IDX)
+12 SET SARRAY(IDX,"abbreviatedDisplayText")=SECT("abbreviatedDisplayText")
+13 SET SARRAY(IDX,"displayText")=SECT("displayText")
+14 SET SARRAY(IDX,"id")=SECT("sectionId")
SET SARRAY("index",SECT("sectionId"))=IDX
End DoDot:1
+15 IF $DATA(ORERROR)
WRITE !,"Error decoding inputs"
QUIT
+16 IF '$DATA(^TMP("ORIRPC GETPANELS",$JOB))
WRITE !,"No results returned"
QUIT
+17 SET IDX=0
SET IIDX=0
FOR
SET IDX=$ORDER(^TMP(SUB,$JOB,"presentation",IDX))
if IDX'>0
QUIT
Begin DoDot:1
+18 KILL COMPS
+19 MERGE COMPS=^TMP(SUB,$JOB,"presentation",IDX)
+20 SET IIDX=IIDX+1
DO POPSECTARRAY(.COMPS,.SARRAY,IDX)
End DoDot:1
+21 ;
+22 SET SIDX=0
SET ACTION=0
FOR
SET SIDX=$ORDER(SARRAY(SIDX))
if SIDX'>0
QUIT
Begin DoDot:1
+23 WRITE !,"SECTION: "_SIDX_" "_SARRAY(SIDX,"abbreviatedDisplayText")_" "_SARRAY(SIDX,"displayText")
+24 SET IDX=0
FOR
SET IDX=$ORDER(SARRAY(SIDX,"items",IDX))
if IDX'>0
QUIT
Begin DoDot:2
+25 SET NUM=0
FOR
SET NUM=$ORDER(SARRAY(SIDX,"items",IDX,NUM))
if NUM'>0
QUIT
Begin DoDot:3
+26 WRITE !,SARRAY(SIDX,"items",IDX,NUM)
IF ACTION
QUIT
End DoDot:3
End DoDot:2
End DoDot:1
+27 IF $DATA(SARRAY("actionIndex"))
DO TESTACT(SUB,DFN,.SARRAY)
+28 QUIT
+29 ;
POPSECTARRAY(COMPS,SARRAY,IDX) ;
+1 NEW ARRAY,ACT,ETYPE,IEN,NIDX,PAD,SID,SIDX,STR,TMP
+2 SET SID=COMPS("sectionId")
IF SID=""
QUIT
+3 SET SIDX=$GET(SARRAY("index",SID))
IF +SIDX=0
QUIT
+4 SET PAD=" "
SET NIDX=0
+5 SET STR=$$LJ^XLFSTR(IDX,5,PAD)_$GET(COMPS("abbreviatedDisplayText"))_" "_$GET(COMPS("displayText"))
+6 ;S IDX=$O(SARRAY(SIDX,"items",""),-1)+1
+7 SET NIDX=NIDX+1
SET SARRAY(SIDX,"items",IDX,NIDX)=STR
+8 SET NIDX=NIDX+1
SET SARRAY(SIDX,"items",IDX,NIDX)=$$LJ^XLFSTR(" ",5,PAD)_$GET(COMPS("name"))_$SELECT($GET(COMPS("disabled"))="true":" Disabled/No Action to take",1:"")
+9 ;
+10 SET ACT=$GET(COMPS("action"))
IF ACT'="actNone"
SET SARRAY("actionIndex",IDX)=$GET(COMPS("abbreviatedDisplayText"))_" "_$GET(COMPS("displayText"))
+11 SET IEN=$ORDER(^ORI(101.73,"G",ACT,""))
+12 SET NIDX=NIDX+1
SET SARRAY(SIDX,"items",IDX,NIDX)=$$LJ^XLFSTR(" ",5,PAD)_"Action: "_$PIECE($GET(^ORI(101.73,IEN,0)),U)
+13 ;
+14 SET NIDX=NIDX+1
SET SARRAY(SIDX,"items",IDX,NIDX)=$$LJ^XLFSTR(" ",5,PAD)_"Form Type: "_$GET(COMPS("popOut"))
+15 SET NIDX=NIDX+1
SET SARRAY(SIDX,"items",IDX,NIDX)=$$LJ^XLFSTR(" ",5,PAD)_"Call Detail RPC: "_$GET(COMPS("callDetailRPC"))
+16 QUIT
+17 ;
SETDATA(IDX,RIDX,DATANAME,REQDATA) ;
+1 NEW FN,GBL,IEN,NAME,PROMPT
+2 SET IEN=+$ORDER(^ORI(101.73,"G",DATANAME,""))
IF IEN'>0
WRITE !,DATANAME_" not found."
QUIT
+3 SET NAME=$PIECE($GET(^ORI(101.73,IEN,0)),U)
IF NAME=""
WRITE !,NAME_" not found."
+4 IF DATANAME="dataVisitInformation"
DO VISIT(DATANAME,NAME,.REQDATA)
QUIT
+5 DO LOOKUP(DATANAME,NAME,.REQDATA)
+6 IF $DATA(REQDATA(DATANAME))
QUIT
+7 DO FREETEXT(DATANAME,NAME,.REQDATA)
+8 IF $DATA(REQDATA(DATANAME))
QUIT
+9 QUIT
+10 ;
SETREQ(SUB,IDX,REQDATA) ;
+1 NEW DATANAME,RIDX
+2 SET RIDX=0
+3 FOR
SET RIDX=$ORDER(^TMP(SUB,$JOB,"presentation",IDX,"requiredData",RIDX))
if RIDX'>0
QUIT
Begin DoDot:1
+4 SET DATANAME=$GET(^TMP(SUB,$JOB,"presentation",IDX,"requiredData",RIDX,"dataName"))
+5 DO SETDATA(IDX,RIDX,DATANAME,.REQDATA)
End DoDot:1
+6 QUIT
+7 ;
SHOWRESULT(COMPS) ;
+1 IF COMPS("action")="actNone"
IF COMPS("action")="actShowEditor"
QUIT
+2 IF $GET(COMPS("action"))="actShowUrl"
WRITE !,$GET(COMPS("url"))
QUIT
+3 WRITE !,$GET(COMPS("detailText"))
+4 QUIT
+5 ;
TESTACT(SUB,DFN,SARRAY) ;
+1 NEW COMPS,DATANAME,DIR,DIROUT,DIRUT,DTOUT,DUOUT
+2 NEW ID,IDX,NAME,REQDATA,RIDX,STR,TARRAY,TXT,VALUE,Y
TESTACT1 ;
+1 WRITE !
+2 SET DIR("A")="Test Information Panel Action"
+3 SET DIR(0)="Y^"
+4 DO ^DIR
+5 IF Y'=1
QUIT
+6 ;which panel to process individual panel onClickEvent
+7 SET STR=""
+8 SET DIR("A")="Select panel number to continue"
+9 SET IDX=0
FOR
SET IDX=$ORDER(SARRAY("actionIndex",IDX))
if IDX'>0
QUIT
Begin DoDot:1
+10 SET TXT=$EXTRACT(SARRAY("actionIndex",IDX),1,50)
+11 IF $LENGTH(SARRAY("actionIndex",IDX))>50
SET TXT=TXT_"..."
+12 SET STR=STR_$SELECT(STR="":IDX_":"_TXT,1:";"_IDX_":"_TXT)
End DoDot:1
+13 IF STR=""
QUIT
+14 SET DIR(0)="S^"_STR
+15 DO ^DIR
+16 IF $DATA(DTOUT)!$DATA(DIRUT)
QUIT
+17 IF $DATA(DUOUT)
GOTO TESTACT1
+18 IF Y<1
QUIT
+19 SET IDX=+Y
+20 MERGE COMPS=^TMP(SUB,$JOB,"presentation",IDX)
+21 SET ID=$GET(COMPS("panelId"))
+22 SET TARRAY("id")=ID
SET TARRAY("patientId")=DFN
+23 SET TARRAY("package")="ORDER ENTRY\/RESULTS REPORTING"
SET TARRAY("isNational")="true"
+24 SET TARRAY("connectionUser")=DUZ
+25 IF $GET(COMPS("callDetailRPC"))'="true"
DO SHOWRESULT(.COMPS)
QUIT
+26 IF $DATA(^TMP(SUB,$JOB,"presentation",IDX,"requiredData"))
DO SETREQ(SUB,IDX,.REQDATA)
+27 IF $DATA(REQDATA)
Begin DoDot:1
+28 SET RIDX=0
SET DATANAME=""
+29 FOR
SET DATANAME=$ORDER(REQDATA(DATANAME))
if DATANAME=""
QUIT
Begin DoDot:2
+30 SET RIDX=RIDX+1
+31 SET TARRAY("requiredData",RIDX,"dataType","name")=DATANAME
+32 SET NAME=""
+33 FOR
SET NAME=$ORDER(REQDATA(DATANAME,NAME))
if NAME=""
QUIT
Begin DoDot:3
+34 SET VALUE=$GET(REQDATA(DATANAME,NAME))
+35 SET TARRAY("requiredData",RIDX,"dataType","data",NAME)=VALUE
End DoDot:3
End DoDot:2
End DoDot:1
+36 DO CALLRPC(.TARRAY)
+37 QUIT
+38 ;
FREETEXT(DATANAME,NAME,REQDATA) ;
+1 NEW DIR,DIROUT,DIRUT,DTOUT,DUOUT,Y
+2 SET DIR="F^1:100"
+3 SET DIR("A")="Enter the "_NAME_" value:"
+4 DO ^DIR
+5 IF $DATA(DTOUT)!$DATA(DIRUT)!(DUOUT)
QUIT
+6 IF Y'=""
SET REQDATA(DATANAME,"id")=Y
+7 QUIT
+8 ;
LOOKUP(DATANAME,NAME,REQDATA) ;
+1 NEW GBL,NODE,PROMPT
+2 ;("^ORI(101.72,","Select Information Panel: ","","","")
+3 SET GBL=""
SET PROMPT="Select the "_NAME_": "
+4 IF DATANAME="dataEncounterProvider"
SET GBL="^VA(200,"
+5 IF DATANAME="dataUserInformation"
SET GBL="^VA(200,"
+6 IF GBL=""
QUIT
+7 SET NODE=$$FINDBYNAME^ORIMGR(GBL,PROMPT,"","","")
+8 IF +$PIECE(NODE,U)'>0
QUIT
+9 SET REQDATA(DATANAME,"id")=$PIECE(NODE,U)
+10 SET REQDATA(DATANAME,"name")=$PIECE(NODE,U,2)
+11 QUIT
+12 ;
VISIT(DATANAME,NAME,REQDATA) ;
+1 NEW DATETIME,DIR,DIROUT,DIRUT,DTOUT,DUOUT
+2 NEW LOC,LOCNAME,NODE,SVC,VIEN,VSTR,Y
+3 WRITE !,"Visit Information is required."
+4 WRITE !,"An existing visit can be selected or you can select the visit components"
+5 SET DIR("A")="Select an existing visit or build a visit"
+6 SET DIR(0)="S^B:Build Visit;E:Existing Visit"
+7 DO ^DIR
+8 IF $DATA(DTOUT)!($DATA(DIRUT))!($DATA(DUOUT))
QUIT
+9 SET LOC=""
SET LOCNAME=""
SET DATETIME=0
SET SVC=""
+10 IF Y="E"
Begin DoDot:1
+11 SET VIEN=$$FINDBYNAME^ORIMGR("^AUPNVSIT(","Select an existing visit: ","","","")
+12 IF +VIEN'>0
QUIT
+13 SET NODE=$GET(^AUPNVSIT(VIEN,0))
+14 SET LOC=$PIECE(NODE,U,22)
IF LOC>0
SET LOCNAME=$PIECE($GET(^SC(LOC,0)),U)
+15 SET SVC=$PIECE(NODE,U,7)
+16 SET DATETIME=$PIECE(NODE,U)
+17 SET VSTR=LOC_";"_DATETIME_";"_SVC
+18 SET REQDATA(DATANAME,"id")=VIEN
SET REQDATA(DATANAME,"locId")=LOCNAME
+19 SET REQDATA(DATANAME,"locName")=LOCNAME
SET REQDATA(DATANAME,"visitDateTime")=DATETIME
+20 SET REQDATA(DATANAME,"visitType")=SVC
SET REQDATA("DATANAME","visitString")=VSTR
End DoDot:1
QUIT
+21 ;
+22 SET LOC=$$FINDBYNAME^ORIMGR("^SC(","Select Hospital Location: ","","","")
+23 IF +LOC'>0
QUIT
+24 SET REQDATA(DATANAME,"locId")=+$PIECE(LOC,U)
SET REQDATA(DATANAME,"locName")=$PIECE(LOC,U,2)
+25 SET DIR("A")="Select the service category"
+26 SET DIR(0)="S^A:Ambulatory;I:Inpatient Appointment;D:Daily Hospitalization Visit;H:Initial Admission Encounter;T:Telephone;X:Ancillary Services"
+27 DO ^DIR
+28 IF $DATA(DTOUT)!($DATA(DIRUT))!($DATA(DUOUT))
QUIT
+29 IF Y=""
QUIT
+30 SET SVC=Y
+31 SET REQDATA(DATANAME,"visitType")=SVC
+32 SET DIR(0)="D^2880101:"_DT_":EX"
+33 DO ^DIR
+34 IF Y'>0
QUIT
+35 SET DATETIME=Y
+36 SET REQDATA(DATANAME,"visitDateTime")=DATETIME
+37 SET VSTR=+$PIECE(LOC,U)_";"_DATETIME_";"_SVC
+38 SET REQDATA(DATANAME,"visitString")=VSTR
+39 QUIT
+40 ;