ORY280P ;slc/dcm - Export Package Level Parameters ;3/17/10  09:18
 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**280**;Dec 17, 1997;Build 85
MAIN ; main (initial) parameter transport routine
 K ^TMP($J,"XPARRSTR")
 N ENT,IDX,ROOT,REF,VAL,I
 S ROOT=$NAME(^TMP($J,"XPARRSTR")),ROOT=$E(ROOT,1,$L(ROOT)-1)_","
 D LOAD
 S IDX=0,ENT="PKG.ORDER ENTRY/RESULTS REPORTING"
 F  S IDX=$O(^TMP($J,"XPARRSTR",IDX)) Q:'IDX  D
 . N PAR,INST,ORVAL,ORERR
 . S PAR=$P(^TMP($J,"XPARRSTR",IDX,"KEY"),U),INST=$P(^("KEY"),U,2)
 . M ORVAL=^TMP($J,"XPARRSTR",IDX,"VAL")
 . D EN^XPAR(ENT,PAR,INST,.ORVAL,.ORERR)
 K ^TMP($J,"XPARRSTR")
 D PKG
 Q
LOAD ; load data into ^TMP (expects ROOT to be defined)
 S I=1 F  S REF=$T(DATA+I) Q:REF=""  S VAL=$T(DATA+I+1) D
 . S I=I+2,REF=$P(REF,";",3,999),VAL=$P(VAL,";",3,999)
 . S @(ROOT_REF)=VAL
 Q
PKG ;Setup VBECS package level parameters of Pointer Type
 N ORX,P
 S P="OR VBECS COMPONENT ORDER"
 D SET("RED BLOOD CELLS",P,5,"S.VBC")
 D SET("FRESH FROZEN PLASMA",P,10,"S.VBC")
 D SET("PLATELETS",P,15,"S.VBC")
 D SET("CRYOPRECIPITATE",P,20,"S.VBC")
 D SET("WHOLE BLOOD",P,25,"S.VBC")
 D SET("OTHER",P,30,"S.VBC")
 S P="OR VBECS DIAGNOSTIC TEST ORDER"
 D SET("ABO/RH",P,5,"S.VBT")
 D SET("ANTIBODY SCREEN",P,10,"S.VBT")
 D SET("DIRECT ANTIGLOBULIN TEST",P,15,"S.VBT")
 D SET("TRANSFUSION REACTION WORKUP",P,20,"S.VBT")
 D SET("TYPE & SCREEN",P,25,"S.VBT")
 Q
SET(ONAME,P,S,XREF) ;Set the parameter
 ;ONAME=Report name
 ;P=Parameter name
 ;S=Sequence (count)
 ;XREF=Cross Reference to screen on
 N DA,ORERR
 S DA=0 F  S DA=$O(^ORD(101.43,XREF,ONAME,DA)) Q:'DA  D
 . D EN^XPAR("PKG.ORDER ENTRY/RESULTS REPORTING",P,S,ONAME,.ORERR)
 Q
DATA ; parameter data
 ;;9343,"KEY")
 ;;OR VBECS REMOVE COLL TIME^1
 ;;9343,"VAL")
 ;;NO
 ;;9344,"KEY")
 ;;OR VBECS DIAGNOSTIC PANEL 1ST^1
 ;;9344,"VAL")
 ;;NO
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HORY280P   1854     printed  Sep 23, 2025@20:17:01                                                                                                                                                                                                     Page 2
ORY280P   ;slc/dcm - Export Package Level Parameters ;3/17/10  09:18
 +1       ;;3.0;ORDER ENTRY/RESULTS REPORTING;**280**;Dec 17, 1997;Build 85
MAIN      ; main (initial) parameter transport routine
 +1        KILL ^TMP($JOB,"XPARRSTR")
 +2        NEW ENT,IDX,ROOT,REF,VAL,I
 +3        SET ROOT=$NAME(^TMP($JOB,"XPARRSTR"))
           SET ROOT=$EXTRACT(ROOT,1,$LENGTH(ROOT)-1)_","
 +4        DO LOAD
 +5        SET IDX=0
           SET ENT="PKG.ORDER ENTRY/RESULTS REPORTING"
 +6        FOR 
               SET IDX=$ORDER(^TMP($JOB,"XPARRSTR",IDX))
               if 'IDX
                   QUIT 
               Begin DoDot:1
 +7                NEW PAR,INST,ORVAL,ORERR
 +8                SET PAR=$PIECE(^TMP($JOB,"XPARRSTR",IDX,"KEY"),U)
                   SET INST=$PIECE(^("KEY"),U,2)
 +9                MERGE ORVAL=^TMP($JOB,"XPARRSTR",IDX,"VAL")
 +10               DO EN^XPAR(ENT,PAR,INST,.ORVAL,.ORERR)
               End DoDot:1
 +11       KILL ^TMP($JOB,"XPARRSTR")
 +12       DO PKG
 +13       QUIT 
LOAD      ; load data into ^TMP (expects ROOT to be defined)
 +1        SET I=1
           FOR 
               SET REF=$TEXT(DATA+I)
               if REF=""
                   QUIT 
               SET VAL=$TEXT(DATA+I+1)
               Begin DoDot:1
 +2                SET I=I+2
                   SET REF=$PIECE(REF,";",3,999)
                   SET VAL=$PIECE(VAL,";",3,999)
 +3                SET @(ROOT_REF)=VAL
               End DoDot:1
 +4        QUIT 
PKG       ;Setup VBECS package level parameters of Pointer Type
 +1        NEW ORX,P
 +2        SET P="OR VBECS COMPONENT ORDER"
 +3        DO SET("RED BLOOD CELLS",P,5,"S.VBC")
 +4        DO SET("FRESH FROZEN PLASMA",P,10,"S.VBC")
 +5        DO SET("PLATELETS",P,15,"S.VBC")
 +6        DO SET("CRYOPRECIPITATE",P,20,"S.VBC")
 +7        DO SET("WHOLE BLOOD",P,25,"S.VBC")
 +8        DO SET("OTHER",P,30,"S.VBC")
 +9        SET P="OR VBECS DIAGNOSTIC TEST ORDER"
 +10       DO SET("ABO/RH",P,5,"S.VBT")
 +11       DO SET("ANTIBODY SCREEN",P,10,"S.VBT")
 +12       DO SET("DIRECT ANTIGLOBULIN TEST",P,15,"S.VBT")
 +13       DO SET("TRANSFUSION REACTION WORKUP",P,20,"S.VBT")
 +14       DO SET("TYPE & SCREEN",P,25,"S.VBT")
 +15       QUIT 
SET(ONAME,P,S,XREF) ;Set the parameter
 +1       ;ONAME=Report name
 +2       ;P=Parameter name
 +3       ;S=Sequence (count)
 +4       ;XREF=Cross Reference to screen on
 +5        NEW DA,ORERR
 +6        SET DA=0
           FOR 
               SET DA=$ORDER(^ORD(101.43,XREF,ONAME,DA))
               if 'DA
                   QUIT 
               Begin DoDot:1
 +7                DO EN^XPAR("PKG.ORDER ENTRY/RESULTS REPORTING",P,S,ONAME,.ORERR)
               End DoDot:1
 +8        QUIT 
DATA      ; parameter data
 +1       ;;9343,"KEY")
 +2       ;;OR VBECS REMOVE COLL TIME^1
 +3       ;;9343,"VAL")
 +4       ;;NO
 +5       ;;9344,"KEY")
 +6       ;;OR VBECS DIAGNOSTIC PANEL 1ST^1
 +7       ;;9344,"VAL")
 +8       ;;NO