Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WorldVistAEHR/trunk/r/ORDER_ENTRY_RESULTS_REPORTING-OR-OCX--ORRC--ORRJ/OCXOZ0B.m

    r613 r623  
    1 OCXOZ0B ;SLC/RJS,CLA - Order Check Scan ;NOV 8,2009 at 18:44
    2         ;;3.0;ORDER ENTRY/RESULTS REPORTING;**32,221,243**;Dec 17,1997;Build 242
    3         ;;  ;;ORDER CHECK EXPERT version 1.01 released OCT 29,1998
    4         ;
    5         ; ***************************************************************
    6         ; ** Warning: This routine is automatically generated by the   **
    7         ; ** Rule Compiler (^OCXOCMP) and ANY changes to this routine  **
    8         ; ** will be lost the next time the rule compiler executes.    **
    9         ; ***************************************************************
    10         ;
    11         Q
    12         ;
    13 CHK241  ; Look through the current environment for valid Event/Elements for this patient.
    14         ;  Called from CHK236+16^OCXOZ0A.
    15         ;
    16         Q:$G(OCXOERR)
    17         ;
    18         ;    Local CHK241 Variables
    19         ; OCXDF(37) ---> Data Field: PATIENT IEN (NUMERIC)
    20         ; OCXDF(73) ---> Data Field: ORDERABLE ITEM IEN (NUMERIC)
    21         ; OCXDF(79) ---> Data Field: PATIENT TOO BIG FOR SCANNER TEXT (FREE TEXT)
    22         ; OCXDF(80) ---> Data Field: PATIENT TOO BIG FOR SCANNER DEVICE (FREE TEXT)
    23         ;
    24         ;      Local Extrinsic Functions
    25         ; CTMRI( -----------> CT MRI PHYSICAL LIMITS
    26         ; FILE(DFN,72, -----> FILE DATA IN PATIENT ACTIVE DATA FILE  (Event/Element: PATIENT OVER CT OR MRI DEVICE LIMITATIONS)
    27         ;
    28         S OCXDF(79)=$P($$CTMRI(OCXDF(37),OCXDF(73)),"^",2),OCXDF(80)=$P($$CTMRI(OCXDF(37),OCXDF(73)),"^",3),OCXOERR=$$FILE(DFN,72,"79,80") Q:OCXOERR
    29         Q
    30         ;
    31 CHK247  ; Look through the current environment for valid Event/Elements for this patient.
    32         ;  Called from CHK182+19^OCXOZ08.
    33         ;
    34         Q:$G(OCXOERR)
    35         ;
    36         ;    Local CHK247 Variables
    37         ; OCXDF(37) ---> Data Field: PATIENT IEN (NUMERIC)
    38         ; OCXDF(64) ---> Data Field: FORMATTED RENAL LAB RESULTS (FREE TEXT)
    39         ;
    40         ;      Local Extrinsic Functions
    41         ; FILE(DFN,73, -----> FILE DATA IN PATIENT ACTIVE DATA FILE  (Event/Element: CREATININE CLEARANCE ESTIMATE)
    42         ; FLAB( ------------> FORMATTED LAB RESULTS
    43         ;
    44         S OCXDF(64)=$$FLAB(OCXDF(37),"SERUM CREATININE^SERUM UREA NITROGEN","SERUM SPECIMEN"),OCXOERR=$$FILE(DFN,73,"64,76") Q:OCXOERR
    45         Q
    46         ;
    47 CHK253  ; Look through the current environment for valid Event/Elements for this patient.
    48         ;  Called from CHK157+18^OCXOZ07.
    49         ;
    50         Q:$G(OCXOERR)
    51         ;
    52         ;    Local CHK253 Variables
    53         ; OCXDF(2) ----> Data Field: FILLER (FREE TEXT)
    54         ; OCXDF(34) ---> Data Field: ORDER NUMBER (NUMERIC)
    55         ; OCXDF(96) ---> Data Field: ORDERABLE ITEM NAME (FREE TEXT)
    56         ;
    57         ;      Local Extrinsic Functions
    58         ; FILE(DFN,110, ----> FILE DATA IN PATIENT ACTIVE DATA FILE  (Event/Element: STAT CONSULT RESULT)
    59         ; FILE(DFN,75, -----> FILE DATA IN PATIENT ACTIVE DATA FILE  (Event/Element: STAT IMAGING RESULT)
    60         ; ORDITEM( ---------> GET ORDERABLE ITEM FROM ORDER NUMBER
    61         ;
    62         I (OCXDF(2)="RA"),$L(OCXDF(34)) S OCXDF(96)=$$ORDITEM(OCXDF(34)),OCXOERR=$$FILE(DFN,75,"24,96") Q:OCXOERR
    63         I (OCXDF(2)="GMRC"),$L(OCXDF(34)) S OCXDF(96)=$$ORDITEM(OCXDF(34)),OCXOERR=$$FILE(DFN,110,"24,96") Q:OCXOERR
    64         Q
    65         ;
    66 CHK264  ; Look through the current environment for valid Event/Elements for this patient.
    67         ;  Called from CHK151+18^OCXOZ07.
    68         ;
    69         Q:$G(OCXOERR)
    70         ;
    71         ;      Local Extrinsic Functions
    72         ; FILE(DFN,76, -----> FILE DATA IN PATIENT ACTIVE DATA FILE  (Event/Element: STAT LAB RESULT)
    73         ;
    74         S OCXOERR=$$FILE(DFN,76,"24,96") Q:OCXOERR
    75         Q
    76         ;
    77 CHK270  ; Look through the current environment for valid Event/Elements for this patient.
    78         ;  Called from CHK12+34^OCXOZ03.
    79         ;
    80         Q:$G(OCXOERR)
    81         ;
    82         ;    Local CHK270 Variables
    83         ; OCXDF(37) ---> Data Field: PATIENT IEN (NUMERIC)
    84         ; OCXDF(84) ---> Data Field: INPATIENT (BOOLEAN)
    85         ; OCXDF(147) --> Data Field: PATIENT LOCATION (FREE TEXT)
    86         ;
    87         ;      Local Extrinsic Functions
    88         ; FILE(DFN,84, -----> FILE DATA IN PATIENT ACTIVE DATA FILE  (Event/Element: INPATIENT FOOD-DRUG REACTION)
    89         ; PATLOC( ----------> PATIENT LOCATION
    90         ; WARDRMBD( --------> WARD ROOM-BED
    91         ;
    92         S OCXDF(84)=$P($$WARDRMBD(OCXDF(37)),"^",1) I $L(OCXDF(84)),(OCXDF(84)) S OCXDF(147)=$P($$PATLOC(OCXDF(37)),"^",2),OCXOERR=$$FILE(DFN,84,"82,147") Q:OCXOERR
    93         Q
    94         ;
    95 CHK280  ; Look through the current environment for valid Event/Elements for this patient.
    96         ;  Called from CHK188+15^OCXOZ09.
    97         ;
    98         Q:$G(OCXOERR)
    99         ;
    100         ;    Local CHK280 Variables
    101         ; OCXDF(2) ----> Data Field: FILLER (FREE TEXT)
    102         ; OCXDF(37) ---> Data Field: PATIENT IEN (NUMERIC)
    103         ; OCXDF(125) --> Data Field: RECENT GLUCOPHAGE CREATININE TEXT (FREE TEXT)
    104         ; OCXDF(127) --> Data Field: RECENT GLUCOPHAGE CREATININE DAYS (NUMERIC)
    105         ;
    106         ;      Local Extrinsic Functions
    107         ;
    108         I ($E(OCXDF(2),1,2)="PS") S OCXDF(37)=$G(DFN) I $L(OCXDF(37)) S OCXDF(125)=$P($$GLCREAT^ORKPS(OCXDF(37)),"^",2),OCXDF(127)=$P($$GCDAYS^ORKPS(OCXDF(37)),"^",1) D CHK285
    109         Q
    110         ;
    111 CHK285  ; Look through the current environment for valid Event/Elements for this patient.
    112         ;  Called from CHK280+13.
    113         ;
    114         Q:$G(OCXOERR)
    115         ;
    116         ;      Local Extrinsic Functions
    117         ; FILE(DFN,86, -----> FILE DATA IN PATIENT ACTIVE DATA FILE  (Event/Element: GLUCOPHAGE ORDER)
    118         ;
    119         S OCXOERR=$$FILE(DFN,86,"125,127") Q:OCXOERR
    120         Q
    121         ;
    122 CHK293  ; Look through the current environment for valid Event/Elements for this patient.
    123         ;  Called from CHK113+20^OCXOZ06.
    124         ;
    125         Q:$G(OCXOERR)
    126         ;
    127         ;      Local Extrinsic Functions
    128         ; FILE(DFN,100, ----> FILE DATA IN PATIENT ACTIVE DATA FILE  (Event/Element: CANCELED BY NON-ORIG ORDERING PROVIDER)
    129         ;
    130         S OCXOERR=$$FILE(DFN,100,"105") Q:OCXOERR
    131         Q
    132         ;
    133 CTMRI(DFN,OCXOI)        ;  Compiler Function: CT MRI PHYSICAL LIMITS
    134         ;
    135         N OCXDEV,OCXWTP,OCXHTP,OCXWTL,OCXHTL
    136         S OCXDEV=$$TYPE^ORKRA(OCXOI)
    137         Q:'((OCXDEV="MRI")!(OCXDEV="CT")) 0_U
    138         S OCXWTP=$P($$WT^ORQPTQ4(DFN),U,2),OCXHTP=$P($$HT^ORQPTQ4(DFN),U,2)
    139         I (OCXDEV="CT") S OCXWTL=$$GET^XPAR("ALL","ORK CT LIMIT WT",1,"Q"),OCXHTL=$$GET^XPAR("ALL","ORK CT LIMIT HT",1,"Q")
    140         I (OCXDEV="CT"),(OCXWTL),(OCXWTP>OCXWTL) Q 1_U_"too heavy"_U_"CT scanner"
    141         I (OCXDEV="CT"),(OCXHTL),(OCXHTP>OCXHTL) Q 1_U_"too tall"_U_"CT scanner"
    142         I (OCXDEV="MRI") S OCXWTL=$$GET^XPAR("ALL","ORK MRI LIMIT WT",1,"Q"),OCXHTL=$$GET^XPAR("ALL","ORK MRI LIMIT HT",1,"Q")
    143         I (OCXDEV="MRI"),(OCXWTL),(OCXWTP>OCXWTL) Q 1_U_"too heavy"_U_"MRI scanner"
    144         I (OCXDEV="MRI"),(OCXHTL),(OCXHTP>OCXHTL) Q 1_U_"too tall"_U_"MRI scanner"
    145         Q 0_U
    146         ;
    147 FILE(DFN,OCXELE,OCXDFL) ;     This Local Extrinsic Function logs a validated event/element.
    148         ;
    149         N OCXTIMN,OCXTIML,OCXTIMT1,OCXTIMT2,OCXDATA,OCXPC,OCXPC,OCXVAL,OCXSUB,OCXDFI
    150         S DFN=+$G(DFN),OCXELE=+$G(OCXELE)
    151         ;
    152         Q:'DFN 1 Q:'OCXELE 1 K OCXDATA
    153         ;
    154         S OCXDATA(DFN,OCXELE)=1
    155         F OCXPC=1:1:$L(OCXDFL,",") S OCXDFI=$P(OCXDFL,",",OCXPC) I OCXDFI D
    156         .S OCXVAL=$G(OCXDF(+OCXDFI)),OCXDATA(DFN,OCXELE,+OCXDFI)=OCXVAL
    157         ;
    158         M ^TMP("OCXCHK",$J,DFN)=OCXDATA(DFN)
    159         ;
    160         Q 0
    161         ;
    162 FLAB(DFN,OCXLIST,OCXSPEC)       ;  Compiler Function: FORMATTED LAB RESULTS
    163         ;
    164         Q:'$G(DFN) "<Patient Not Specified>"
    165         Q:'$L($G(OCXLIST)) "<Lab Tests Not Specified>"
    166         N OCXLAB,OCXOUT,OCXPC,OCXSL,SPEC S OCXOUT="",SPEC=""
    167         I $L($G(OCXSPEC)) S OCXSL=$$TERMLKUP(OCXSPEC,.OCXSL)
    168         F OCXPC=1:1:$L(OCXLIST,U) S OCXLAB=$P(OCXLIST,U,OCXPC) I $L(OCXLAB) D
    169         .N OCXX,OCXY,X,Y,DIC,TEST,SPEC,OCXTL,OCXA,OCXR
    170         .S OCXTL="" Q:'$$TERMLKUP(OCXLAB,.OCXTL)
    171         .S OCXX="",TEST=0 F  S TEST=$O(OCXTL(TEST)) Q:'TEST  D
    172         ..I $L($G(OCXSL)) D
    173         ...S SPEC=0 F  S SPEC=$O(OCXSL(SPEC)) Q:'SPEC  D
    174         ....S OCXX=$$LOCL^ORQQLR1(DFN,TEST,SPEC) I $L(OCXX) D
    175         .....S OCXA($P(OCXX,U,7))=OCXX
    176         ..I '$L($G(OCXSL)) S OCXX=$$LOCL^ORQQLR1(DFN,TEST,"")
    177         ..Q:'$L(OCXX)
    178         .I $D(OCXA) S OCXR="",OCXR=$O(OCXA(OCXR),-1),OCXX=OCXA(OCXR)
    179         .I $L(OCXX) D
    180         ..S OCXY=$P(OCXX,U,2)_": "_$P(OCXX,U,3)_" "_$P(OCXX,U,4)
    181         ..S OCXY=OCXY_" "_$S($L($P(OCXX,U,5)):"["_$P(OCXX,U,5)_"]",1:"")
    182         ..I $L($P(OCXX,U,7)) S OCXY=OCXY_" "_$$FMTE^XLFDT($P(OCXX,U,7),"2P")
    183         .S:$L(OCXOUT) OCXOUT=OCXOUT_"   " S OCXOUT=OCXOUT_$G(OCXY)
    184         Q:'$L(OCXOUT) "<Results Not Found>" Q OCXOUT
    185         ;
    186 ORDITEM(OIEN)   ;  Compiler Function: GET ORDERABLE ITEM FROM ORDER NUMBER
    187         Q:'$G(OIEN) ""
    188         ;
    189         N OITXT,X S OITXT=$$OI^ORQOR2(OIEN) Q:'OITXT "No orderable item found."
    190         S X=$G(^ORD(101.43,+OITXT,0)) Q:'$L(X) "No orderable item found."
    191         Q $P(X,U,1)
    192         ;
    193 PATLOC(DFN)     ;  Compiler Function: PATIENT LOCATION
    194         ;
    195         N OCXP1,OCXP2
    196         S OCXP1=$G(^TMP("OCXSWAP",$J,"OCXODATA","PV1",2))
    197         S OCXP2=$P($G(^TMP("OCXSWAP",$J,"OCXODATA","PV1",3)),"^",1)
    198         I OCXP2 D
    199         .S OCXP2=$P($G(^SC(+OCXP2,0)),"^",1,2)
    200         .I $L($P(OCXP2,"^",2)) S OCXP2=$P(OCXP2,"^",2)
    201         .E  S OCXP2=$P(OCXP2,"^",1)
    202         .S:'$L(OCXP2) OCXP2="NO LOC"
    203         I $L(OCXP1),$L(OCXP2) Q OCXP1_"^"_OCXP2
    204         ;
    205         S OCXP2=$G(^DPT(+$G(DFN),.1))
    206         I $L(OCXP2) Q "I^"_OCXP2
    207         Q "O^OUTPT"
    208         ;
    209 TERMLKUP(OCXTERM,OCXLIST)       ;
    210         Q $$TERM^OCXOZ01(OCXTERM,.OCXLIST)
    211         ;
    212 WARDRMBD(DFN)   ;  Compiler Function: WARD ROOM-BED
    213         ;
    214         Q:'$G(DFN) 0
    215         N OUT S OUT=$G(^DPT(DFN,.1)) Q:'$L(OUT) 0
    216         S OUT=1_"^"_OUT_" "_$G(^DPT(DFN,.101)) Q OUT
    217         ;
     1OCXOZ0B ;SLC/RJS,CLA - Order Check Scan ;DEC 27,2007 at 06:00
     2 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**32,221**;Dec 17,1997
     3 ;;  ;;ORDER CHECK EXPERT version 1.01 released OCT 29,1998
     4 ;
     5 ; ***************************************************************
     6 ; ** Warning: This routine is automatically generated by the   **
     7 ; ** Rule Compiler (^OCXOCMP) and ANY changes to this routine  **
     8 ; ** will be lost the next time the rule compiler executes.    **
     9 ; ***************************************************************
     10 ;
     11 Q
     12 ;
     13CHK241 ; Look through the current environment for valid Event/Elements for this patient.
     14 ;  Called from CHK236+16^OCXOZ0A.
     15 ;
     16 Q:$G(OCXOERR)
     17 ;
     18 ;    Local CHK241 Variables
     19 ; OCXDF(37) ---> Data Field: PATIENT IEN (NUMERIC)
     20 ; OCXDF(73) ---> Data Field: ORDERABLE ITEM IEN (NUMERIC)
     21 ; OCXDF(79) ---> Data Field: PATIENT TOO BIG FOR SCANNER TEXT (FREE TEXT)
     22 ; OCXDF(80) ---> Data Field: PATIENT TOO BIG FOR SCANNER DEVICE (FREE TEXT)
     23 ;
     24 ;      Local Extrinsic Functions
     25 ; CTMRI( -----------> CT MRI PHYSICAL LIMITS
     26 ; FILE(DFN,72, -----> FILE DATA IN PATIENT ACTIVE DATA FILE  (Event/Element: PATIENT OVER CT OR MRI DEVICE LIMITATIONS)
     27 ;
     28 S OCXDF(79)=$P($$CTMRI(OCXDF(37),OCXDF(73)),"^",2),OCXDF(80)=$P($$CTMRI(OCXDF(37),OCXDF(73)),"^",3),OCXOERR=$$FILE(DFN,72,"79,80") Q:OCXOERR
     29 Q
     30 ;
     31CHK247 ; Look through the current environment for valid Event/Elements for this patient.
     32 ;  Called from CHK182+19^OCXOZ08.
     33 ;
     34 Q:$G(OCXOERR)
     35 ;
     36 ;    Local CHK247 Variables
     37 ; OCXDF(37) ---> Data Field: PATIENT IEN (NUMERIC)
     38 ; OCXDF(64) ---> Data Field: FORMATTED RENAL LAB RESULTS (FREE TEXT)
     39 ;
     40 ;      Local Extrinsic Functions
     41 ; FILE(DFN,73, -----> FILE DATA IN PATIENT ACTIVE DATA FILE  (Event/Element: CREATININE CLEARANCE ESTIMATE)
     42 ; FLAB( ------------> FORMATTED LAB RESULTS
     43 ;
     44 S OCXDF(64)=$$FLAB(OCXDF(37),"SERUM CREATININE^SERUM UREA NITROGEN","SERUM SPECIMEN"),OCXOERR=$$FILE(DFN,73,"64,76") Q:OCXOERR
     45 Q
     46 ;
     47CHK253 ; Look through the current environment for valid Event/Elements for this patient.
     48 ;  Called from CHK157+18^OCXOZ07.
     49 ;
     50 Q:$G(OCXOERR)
     51 ;
     52 ;    Local CHK253 Variables
     53 ; OCXDF(2) ----> Data Field: FILLER (FREE TEXT)
     54 ; OCXDF(34) ---> Data Field: ORDER NUMBER (NUMERIC)
     55 ; OCXDF(96) ---> Data Field: ORDERABLE ITEM NAME (FREE TEXT)
     56 ;
     57 ;      Local Extrinsic Functions
     58 ; FILE(DFN,110, ----> FILE DATA IN PATIENT ACTIVE DATA FILE  (Event/Element: STAT CONSULT RESULT)
     59 ; FILE(DFN,75, -----> FILE DATA IN PATIENT ACTIVE DATA FILE  (Event/Element: STAT IMAGING RESULT)
     60 ; ORDITEM( ---------> GET ORDERABLE ITEM FROM ORDER NUMBER
     61 ;
     62 I (OCXDF(2)="RA"),$L(OCXDF(34)) S OCXDF(96)=$$ORDITEM(OCXDF(34)),OCXOERR=$$FILE(DFN,75,"24,96") Q:OCXOERR
     63 I (OCXDF(2)="GMRC"),$L(OCXDF(34)) S OCXDF(96)=$$ORDITEM(OCXDF(34)),OCXOERR=$$FILE(DFN,110,"24,96") Q:OCXOERR
     64 Q
     65 ;
     66CHK264 ; Look through the current environment for valid Event/Elements for this patient.
     67 ;  Called from CHK151+18^OCXOZ07.
     68 ;
     69 Q:$G(OCXOERR)
     70 ;
     71 ;      Local Extrinsic Functions
     72 ; FILE(DFN,76, -----> FILE DATA IN PATIENT ACTIVE DATA FILE  (Event/Element: STAT LAB RESULT)
     73 ;
     74 S OCXOERR=$$FILE(DFN,76,"24,96") Q:OCXOERR
     75 Q
     76 ;
     77CHK270 ; Look through the current environment for valid Event/Elements for this patient.
     78 ;  Called from CHK12+34^OCXOZ03.
     79 ;
     80 Q:$G(OCXOERR)
     81 ;
     82 ;    Local CHK270 Variables
     83 ; OCXDF(37) ---> Data Field: PATIENT IEN (NUMERIC)
     84 ; OCXDF(84) ---> Data Field: INPATIENT (BOOLEAN)
     85 ; OCXDF(147) --> Data Field: PATIENT LOCATION (FREE TEXT)
     86 ;
     87 ;      Local Extrinsic Functions
     88 ; FILE(DFN,84, -----> FILE DATA IN PATIENT ACTIVE DATA FILE  (Event/Element: INPATIENT FOOD-DRUG REACTION)
     89 ; PATLOC( ----------> PATIENT LOCATION
     90 ; WARDRMBD( --------> WARD ROOM-BED
     91 ;
     92 S OCXDF(84)=$P($$WARDRMBD(OCXDF(37)),"^",1) I $L(OCXDF(84)),(OCXDF(84)) S OCXDF(147)=$P($$PATLOC(OCXDF(37)),"^",2),OCXOERR=$$FILE(DFN,84,"82,147") Q:OCXOERR
     93 Q
     94 ;
     95CHK280 ; Look through the current environment for valid Event/Elements for this patient.
     96 ;  Called from CHK188+15^OCXOZ09.
     97 ;
     98 Q:$G(OCXOERR)
     99 ;
     100 ;    Local CHK280 Variables
     101 ; OCXDF(2) ----> Data Field: FILLER (FREE TEXT)
     102 ; OCXDF(37) ---> Data Field: PATIENT IEN (NUMERIC)
     103 ; OCXDF(125) --> Data Field: RECENT GLUCOPHAGE CREATININE TEXT (FREE TEXT)
     104 ; OCXDF(127) --> Data Field: RECENT GLUCOPHAGE CREATININE DAYS (NUMERIC)
     105 ;
     106 ;      Local Extrinsic Functions
     107 ;
     108 I ($E(OCXDF(2),1,2)="PS") S OCXDF(37)=$G(DFN) I $L(OCXDF(37)) S OCXDF(125)=$P($$GLCREAT^ORKPS(OCXDF(37)),"^",2),OCXDF(127)=$P($$GCDAYS^ORKPS(OCXDF(37)),"^",1) D CHK285
     109 Q
     110 ;
     111CHK285 ; Look through the current environment for valid Event/Elements for this patient.
     112 ;  Called from CHK280+13.
     113 ;
     114 Q:$G(OCXOERR)
     115 ;
     116 ;      Local Extrinsic Functions
     117 ; FILE(DFN,86, -----> FILE DATA IN PATIENT ACTIVE DATA FILE  (Event/Element: GLUCOPHAGE ORDER)
     118 ;
     119 S OCXOERR=$$FILE(DFN,86,"125,127") Q:OCXOERR
     120 Q
     121 ;
     122CHK293 ; Look through the current environment for valid Event/Elements for this patient.
     123 ;  Called from CHK113+20^OCXOZ06.
     124 ;
     125 Q:$G(OCXOERR)
     126 ;
     127 ;      Local Extrinsic Functions
     128 ; FILE(DFN,100, ----> FILE DATA IN PATIENT ACTIVE DATA FILE  (Event/Element: CANCELED BY NON-ORIG ORDERING PROVIDER)
     129 ;
     130 S OCXOERR=$$FILE(DFN,100,"105") Q:OCXOERR
     131 Q
     132 ;
     133CTMRI(DFN,OCXOI) ;  Compiler Function: CT MRI PHYSICAL LIMITS
     134 ;
     135 N OCXDEV,OCXWTP,OCXHTP,OCXWTL,OCXHTL
     136 S OCXDEV=$$TYPE^ORKRA(OCXOI)
     137 Q:'((OCXDEV="MRI")!(OCXDEV="CT")) 0_U
     138 S OCXWTP=$P($$WT^ORQPTQ4(DFN),U,2),OCXHTP=$P($$HT^ORQPTQ4(DFN),U,2)
     139 I (OCXDEV="CT") S OCXWTL=$$GET^XPAR("ALL","ORK CT LIMIT WT",1,"Q"),OCXHTL=$$GET^XPAR("ALL","ORK CT LIMIT HT",1,"Q")
     140 I (OCXDEV="CT"),(OCXWTL),(OCXWTP>OCXWTL) Q 1_U_"too heavy"_U_"CT scanner"
     141 I (OCXDEV="CT"),(OCXHTL),(OCXHTP>OCXHTL) Q 1_U_"too tall"_U_"CT scanner"
     142 I (OCXDEV="MRI") S OCXWTL=$$GET^XPAR("ALL","ORK MRI LIMIT WT",1,"Q"),OCXHTL=$$GET^XPAR("ALL","ORK MRI LIMIT HT",1,"Q")
     143 I (OCXDEV="MRI"),(OCXWTL),(OCXWTP>OCXWTL) Q 1_U_"too heavy"_U_"MRI scanner"
     144 I (OCXDEV="MRI"),(OCXHTL),(OCXHTP>OCXHTL) Q 1_U_"too tall"_U_"MRI scanner"
     145 Q 0_U
     146 ;
     147FILE(DFN,OCXELE,OCXDFL) ;     This Local Extrinsic Function logs a validated event/element.
     148 ;
     149 N OCXTIMN,OCXTIML,OCXTIMT1,OCXTIMT2,OCXDATA,OCXPC,OCXPC,OCXVAL,OCXSUB,OCXDFI
     150 S DFN=+$G(DFN),OCXELE=+$G(OCXELE)
     151 ;
     152 Q:'DFN 1 Q:'OCXELE 1 K OCXDATA
     153 ;
     154 S OCXDATA(DFN,OCXELE)=1
     155 F OCXPC=1:1:$L(OCXDFL,",") S OCXDFI=$P(OCXDFL,",",OCXPC) I OCXDFI D
     156 .S OCXVAL=$G(OCXDF(+OCXDFI)),OCXDATA(DFN,OCXELE,+OCXDFI)=OCXVAL
     157 ;
     158 M ^TMP("OCXCHK",$J,DFN)=OCXDATA(DFN)
     159 ;
     160 Q 0
     161 ;
     162FLAB(DFN,OCXLIST,OCXSPEC) ;  Compiler Function: FORMATTED LAB RESULTS
     163 ;
     164 Q:'$G(DFN) "<Patient Not Specified>"
     165 Q:'$L($G(OCXLIST)) "<Lab Tests Not Specified>"
     166 N OCXLAB,OCXOUT,OCXPC,OCXSL,SPEC S OCXOUT="",SPEC=""
     167 I $L($G(OCXSPEC)) S OCXSL=$$TERMLKUP(OCXSPEC,.OCXSL)
     168 F OCXPC=1:1:$L(OCXLIST,U) S OCXLAB=$P(OCXLIST,U,OCXPC) I $L(OCXLAB) D
     169 .N OCXX,OCXY,X,Y,DIC,TEST,SPEC,OCXTL,OCXA,OCXR
     170 .S OCXTL="" Q:'$$TERMLKUP(OCXLAB,.OCXTL)
     171 .S OCXX="",TEST=0 F  S TEST=$O(OCXTL(TEST)) Q:'TEST  D
     172 ..I $L($G(OCXSL)) D
     173 ...S SPEC=0 F  S SPEC=$O(OCXSL(SPEC)) Q:'SPEC  D
     174 ....S OCXX=$$LOCL^ORQQLR1(DFN,TEST,SPEC) I $L(OCXX) D
     175 .....S OCXA($P(OCXX,U,7))=OCXX
     176 ..I '$L($G(OCXSL)) S OCXX=$$LOCL^ORQQLR1(DFN,TEST,"")
     177 ..Q:'$L(OCXX)
     178 .I $D(OCXA) S OCXR="",OCXR=$O(OCXA(OCXR),-1),OCXX=OCXA(OCXR)
     179 .I $L(OCXX) D
     180 ..S OCXY=$P(OCXX,U,2)_": "_$P(OCXX,U,3)_" "_$P(OCXX,U,4)
     181 ..S OCXY=OCXY_" "_$S($L($P(OCXX,U,5)):"["_$P(OCXX,U,5)_"]",1:"")
     182 ..I $L($P(OCXX,U,7)) S OCXY=OCXY_" "_$$FMTE^XLFDT($P(OCXX,U,7),"2P")
     183 .S:$L(OCXOUT) OCXOUT=OCXOUT_"   " S OCXOUT=OCXOUT_$G(OCXY)
     184 Q:'$L(OCXOUT) "<Results Not Found>" Q OCXOUT
     185 ;
     186ORDITEM(OIEN) ;  Compiler Function: GET ORDERABLE ITEM FROM ORDER NUMBER
     187 Q:'$G(OIEN) ""
     188 ;
     189 N OITXT,X S OITXT=$$OI^ORQOR2(OIEN) Q:'OITXT "No orderable item found."
     190 S X=$G(^ORD(101.43,+OITXT,0)) Q:'$L(X) "No orderable item found."
     191 Q $P(X,U,1)
     192 ;
     193PATLOC(DFN) ;  Compiler Function: PATIENT LOCATION
     194 ;
     195 N OCXP1,OCXP2
     196 S OCXP1=$G(^TMP("OCXSWAP",$J,"OCXODATA","PV1",2))
     197 S OCXP2=$P($G(^TMP("OCXSWAP",$J,"OCXODATA","PV1",3)),"^",1)
     198 I OCXP2 D
     199 .S OCXP2=$P($G(^SC(+OCXP2,0)),"^",1,2)
     200 .I $L($P(OCXP2,"^",2)) S OCXP2=$P(OCXP2,"^",2)
     201 .E  S OCXP2=$P(OCXP2,"^",1)
     202 .S:'$L(OCXP2) OCXP2="NO LOC"
     203 I $L(OCXP1),$L(OCXP2) Q OCXP1_"^"_OCXP2
     204 ;
     205 S OCXP2=$G(^DPT(+$G(DFN),.1))
     206 I $L(OCXP2) Q "I^"_OCXP2
     207 Q "O^OUTPT"
     208 ;
     209TERMLKUP(OCXTERM,OCXLIST) ;
     210 Q $$TERM^OCXOZ01(OCXTERM,.OCXLIST)
     211 ;
     212WARDRMBD(DFN) ;  Compiler Function: WARD ROOM-BED
     213 ;
     214 Q:'$G(DFN) 0
     215 N OUT S OUT=$G(^DPT(DFN,.1)) Q:'$L(OUT) 0
     216 S OUT=1_"^"_OUT_" "_$G(^DPT(DFN,.101)) Q OUT
     217 ;
Note: See TracChangeset for help on using the changeset viewer.