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/ORWPCE2.m

    r613 r623  
    1 ORWPCE2 ; ISL/JM/RV - wrap calls to PCE ;04/06/2006
    2         ;;3.0;ORDER ENTRY/RESULTS REPORTING;**10,85,109,116,173,195,243**;Dec 17, 1997;Build 242
    3 GETSET(ORWLST,ORWFILE,ORWFIELD,ORWNULL) ;gets set of codes
    4         ; ORWLST(n)=code^text for code
    5         N ORWPCE,ORWPCEL,ORWPCEC,ORWPCELO,ORWPCEHI,ORWPCECD,ORWPCET
    6         S ORWPCELO="abcdefghijklmnopqrstuvwxyz"
    7         S ORWPCEHI="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    8         D FIELD^DID(ORWFILE,ORWFIELD,"","POINTER","ORWPCE","ORWPCE")
    9         S ORWPCEL=$L(ORWPCE("POINTER"),";")-1
    10         F ORWPCEC=1:1:ORWPCEL D
    11         . S ORWPCECD=$P($P(ORWPCE("POINTER"),";",ORWPCEC),":",1)
    12         . S ORWPCET=$P($P(ORWPCE("POINTER"),";",ORWPCEC),":",2)
    13         . S ORWLST(ORWPCEC)=ORWPCECD_"^"_$E(ORWPCET)_$TR($E(ORWPCET,2,99),ORWPCEHI,ORWPCELO)
    14         S:$G(ORWNULL) ORWLST(0)="@^(None selected)"
    15         Q
    16         ;
    17 IMMTYPE(ORWLST,ORDT)    ;get the list of active immunizations
    18         N IEN,CNT,BINDEX S (IEN,CNT,BINDEX)=0
    19         S:'$G(ORDT) ORDT=DT
    20         F  S BINDEX=$O(^AUTTIMM("B",BINDEX)) Q:BINDEX']""  F  S IEN=$O(^(BINDEX,IEN)) Q:'+IEN  D
    21         . I $D(^AUTTIMM(IEN,0))#2,+$P(^(0),"^",7)=0 S CNT=CNT+1,ORWLST(CNT)=IEN_"^"_$P(^(0),"^")
    22         . ;I $D(^AUTTIMM(IEN,0))#2,+$$SCREEN^XTID(9999999.14,,IEN,ORDT)=0 S CNT=CNT+1,ORWLST(CNT)=IEN_"^"_$P(^(0),"^")
    23         Q
    24         ;
    25 SKTYPE(ORWLST,ORDT)     ;get the list of active skin test
    26         N IEN,CNT,BINDEX S (IEN,CNT,BINDEX)=0
    27         S:'$G(ORDT) ORDT=DT
    28         F  S BINDEX=$O(^AUTTSK("B",BINDEX)) Q:BINDEX']""  F  S IEN=$O(^(BINDEX,IEN)) Q:'+IEN  D
    29         . I $D(^AUTTSK(IEN,0))#2,+$P(^(0),"^",3)=0 S CNT=CNT+1,ORWLST(CNT)=IEN_"^"_$P(^(0),"^")
    30         . ;I $D(^AUTTSK(IEN,0))#2,+$$SCREEN^XTID(9999999.28,,IEN,ORDT)=0 S CNT=CNT+1,ORWLST(CNT)=IEN_"^"_$P(^(0),"^")
    31         Q
    32         ;
    33 EDTTYPE(ORWLST) ;get the list of active education topics
    34         N IEN,CNT,BINDEX S (IEN,CNT,BINDEX)=0
    35         F  S BINDEX=$O(^AUTTEDT("B",BINDEX)) Q:BINDEX']""  F  S IEN=$O(^(BINDEX,IEN)) Q:'+IEN  I $D(^AUTTEDT(IEN,0))#2,+$P(^(0),"^",3)=0 S CNT=CNT+1,ORWLST(CNT)=IEN_"^"_$P(^(0),"^")
    36         Q
    37         ;
    38 HFTYPE(ORWLST,ADDCATS)  ;get the list of active  health factors
    39         N IEN,CNT,BINDEX,REC
    40         S (IEN,CNT,BINDEX)=0,ADDCATS=+$G(ADDCATS)
    41         F  S BINDEX=$O(^AUTTHF("B",BINDEX)) Q:BINDEX']""  D
    42         .F  S IEN=$O(^AUTTHF("B",BINDEX,IEN)) Q:'+IEN  D
    43         ..S REC=$G(^AUTTHF(IEN,0))
    44         ..I +$P(REC,U,11) S REC=""
    45         ..I 'ADDCATS,$P(REC,U,10)="C" S REC=""
    46         ..I REC'="" D
    47         ...S CNT=CNT+1,ORWLST(CNT)=IEN_U_$P(REC,U)
    48         ...I ADDCATS S ORWLST(CNT)=ORWLST(CNT)_U_$P(REC,U,10)_U_$P(REC,U,3)
    49         Q
    50         ;
    51 EXAMTYPE(ORWLST)        ;get the list of active exams
    52         N IEN,CNT,BINDEX S (IEN,CNT,BINDEX)=0
    53         F  S BINDEX=$O(^AUTTEXAM("B",BINDEX)) Q:BINDEX']""  F  S IEN=$O(^(BINDEX,IEN)) Q:'+IEN  I $D(^AUTTEXAM(IEN,0))#2,+$P(^(0),"^",4)=0 S CNT=CNT+1,ORWLST(CNT)=IEN_"^"_$P(^(0),"^")
    54         Q
    55         ;
    56 TRTTYPE(ORWLST) ;get the list of active treatments
    57         N IEN,CNT,BINDEX S (IEN,CNT,BINDEX)=0
    58         F  S BINDEX=$O(^AUTTTRT("B",BINDEX)) Q:BINDEX']""  F  S IEN=$O(^(BINDEX,IEN)) Q:'+IEN  I $D(^AUTTTRT(IEN,0))#2,+$P(^(0),"^",4)=0 S CNT=CNT+1,ORWLST(CNT)=IEN_"^"_$P(^(0),"^")
    59         Q
    60         ;
    61 ACTIVPRV(ORRETURN,ORWPROV,ORWDT)        ;get if provider is active or not
    62         S ORRETURN=$$ACTIVPRV^PXAPI(ORWPROV,ORWDT)
    63         Q
    64 GETVISIT(VISIT,IEN,DFN,VSITSTR) ;Get the visit IEN
    65         I +$G(IEN)<1 D  I 1
    66         .S VISIT=$$GETENC^PXAPI(DFN,$P(VSITSTR,";",2),$P(VSITSTR,";"))
    67         E  S VISIT=$P(^TIU(8925,IEN,0),U,3)
    68         Q
    69 GAFOK(ORY)      ; Returns true if all supporting MH GAF Code exists
    70         S ORY=0
    71         I $T(GAFHX^YSGAFAPI)'="",$T(ENT^YSGAFAP1)'="" S ORY=1
    72         Q
    73 MHCLINIC(ORY,ORIEN)         ; See if this is a mental health clinic
    74         I $T(MHCLIN^SDUTL2)="" S ORY=1
    75         E  S ORY=$$MHCLIN^SDUTL2(ORIEN)
    76         Q
    77 LOADGAF(ORY,ORINPUT)    ; Retrieve GAF scores
    78         D GAFHX^YSGAFAPI(.ORY,.ORINPUT)
    79         Q
    80 SAVEGAF(ORY,ORINPUT)    ; Save new GAF score
    81         N ORDATA
    82         D ENT^YSGAFAP1(.ORDATA,.ORINPUT)
    83         S ORY=($G(ORDATA(1))="[DATA]")
    84         Q
    85 FORCE(ORY,USER,LOC)     ; Retrieve FORCE GUI PCE Entry for a given User/Location
    86         N SRV,ORTMP,ORERR
    87         S USER=$G(USER,DUZ)
    88         S SRV=$P($G(^VA(200,USER,5)),U)
    89         D GETLST^XPAR(.ORTMP,"USR^LOC.`"_$G(LOC)_"^SRV.`"_+$G(SRV)_"^DIV^SYS^PKG","ORWPCE FORCE PCE ENTRY","Q",.ORERR)
    90         S ORY=+$P($G(ORTMP(1)),U,2)
    91         Q
    92 HASCPT(ORY,ORLIST)             ; Returns true if there are any mapped CPT Codes
    93         N IEN,IDX,FOUND
    94         S IDX=0
    95         F  S IDX=$O(ORLIST(IDX)) Q:'+IDX  D
    96         . S FOUND=0
    97         . S IEN=$$FIND1^DIC(811.1,"","QX",ORLIST(IDX))
    98         . I +IEN S FOUND=+$$GET1^DIQ(811.1,IEN,.05,"I")
    99         . S ORY(IDX)=ORLIST(IDX)_"="_FOUND
    100         Q
    101 ASKPCE(ORY,USER,LOC)    ; Returns ORWPCE ASK ENCOUNTER UPDATE parameter value
    102         N SRV,ORTMP,ORERR
    103         S USER=$G(USER,DUZ)
    104         S SRV=$P($G(^VA(200,USER,5)),U)
    105         D GETLST^XPAR(.ORTMP,"USR^LOC.`"_$G(LOC)_"^SRV.`"_+$G(SRV)_"^DIV^SYS^PKG","ORWPCE ASK ENCOUNTER UPDATE","Q",.ORERR)
    106         S ORY=+$P($G(ORTMP(1)),U,2)
    107         Q
    108 GAFURL(URL)     ;Returns the MH GAF Web Page URL
    109         S URL=""
    110         I $T(GAFURL^YTAPI5)'="" D
    111         .N ORY
    112         .D GAFURL^YTAPI5(.ORY)
    113         .I $G(ORY(1))="[DATA]" S URL=$G(ORY(2))
    114         Q
    115 MHTESTOK(ORY)   ; Returns True if all supporting MH Test APIs exist
    116         D GAFOK(.ORY)
    117         I +ORY,+$G(DUZ),$T(SAVEIT^YTAPI1)'="",$T(PREVIEW^YTAPI4)'="",$T(SHOWALL^YTAPI3)'="",$T(LISTONE^YTAPI)'="",$T(MHS^PXRMRPCC)'="",$T(MHR^PXRMRPCC)'="",$T(MH^PXRMRPCC)'="" D
    118         . N SRV
    119         . S SRV=$P($G(^VA(200,DUZ,5)),U)
    120         . S ORY=$$GET^XPAR(DUZ_";VA(200,^SRV.`"_+$G(SRV)_"^DIV^SYS","PXRM MENTAL HEALTH ACTIVE",1,"Q")
    121         . I +ORY S ORY=1
    122         Q
    123 MHATHRZD(ORY,TEST,USER) ;Indicates that user can score test
    124         N ORYS,ORANS
    125         I $T(PRIVL^YTAPI5)="" S ORY=1 Q
    126         S ORY=0
    127         S ORYS("CODE")=TEST
    128         S ORYS("STAFF")=USER
    129         D PRIVL^YTAPI5(.ORANS,.ORYS)
    130         I $G(ORANS(1))="[DATA]" S ORY=+$P($G(ORANS(2)),U,1)
    131         Q
    132 ANYTIME(ORY)    ;Returns status of the ORWPCE ANYTIME ENCOUNTERS parameter
    133         N SRV
    134         S SRV=$P($G(^VA(200,DUZ,5)),U)
    135         S ORY=$$GET^XPAR(DUZ_";VA(200,^SRV.`"_+$G(SRV)_"^DIV^SYS","ORWPCE ANYTIME ENCOUNTERS",1,"Q")
    136         I +ORY S ORY=1
    137         Q
    138 AUTOVSIT(ORY,LOC)       ; Returns TRUE if automatic selection of Visit Type
    139         N SRV
    140         S SRV=$P($G(^VA(200,DUZ,5)),U)
    141         S ORY=$$GET^XPAR(DUZ_";VA(200,^LOC.`"_$G(LOC)_"^SRV.`"_+$G(SRV)_"^DIV^SYS","ORWPCE DISABLE AUTO VISIT TYPE",1,"Q")
    142         I +ORY S ORY=1
    143         S ORY='ORY
    144         Q
    145 DOCHKOUT(ORY,LOC)       ; Returns TRUE if automatic selection of Visit Type
    146         N SRV
    147         S SRV=$P($G(^VA(200,DUZ,5)),U)
    148         S ORY=$$GET^XPAR(DUZ_";VA(200,^LOC.`"_$G(LOC)_"^SRV.`"_+$G(SRV)_"^DIV^SYS","ORWPCE DISABLE AUTO CHECKOUT",1,"Q")
    149         I +ORY S ORY=1
    150         S ORY='ORY
    151         Q
    152 CHKOUT(LOC)     ; Returns TRUE if automatic selection of Visit Type
    153         N ORY
    154         D DOCHKOUT(.ORY,LOC)
    155         Q ORY
    156 EXCLUDED(ORY,LOC,TYPE)  ; Returns list of excluded PCE data elements
    157         N SRV,PARAM
    158         S PARAM=$S(TYPE=1:"IMMUNIZATIONS",TYPE=2:"SKIN TESTS",TYPE=3:"PATIENT ED",TYPE=4:"HEALTH FACTORS",TYPE=5:"EXAMS",1:"")
    159         Q:PARAM=""
    160         S SRV=$P($G(^VA(200,DUZ,5)),U)
    161         S PARAM="ORWPCE EXCLUDE "_PARAM
    162         D GETLST^XPAR(.ORY,"USR^LOC.`"_$G(LOC)_"^SRV.`"_+$G(SRV)_"^DIV^SYS^PKG",PARAM,"Q",.ORERR)
    163         Q
    164 ISCLINIC(ORY,ORLOC)     ; Returns TRUE if location is a clinic
    165         N ORTYP
    166         S ORY=0
    167         S ORTYP=$$GET1^DIQ(44,+ORLOC,2,"I")
    168         I (ORTYP="C")!(ORTYP="M") S ORY=1
    169         Q
    170 HNCOK(ORY)      ; Returns true if Head and/or Neck Cancer is enabled
    171         S ORY=0
    172         I $$PATCH^XPDUTL("DG*5.3*397"),$$PATCH^XPDUTL("SD*5.3*244"),$$PATCH^XPDUTL("PX*1.0*111"),$$PATCH^XPDUTL("IVM*2.0*46") S ORY=1
    173         Q
    174         ;
    175 CODACTIV(ORY,ORCODE,ORAPP,ORDATE)             ; Is code active on the given date?
    176         ; Remote procedure:  ORWPCE ACTIVE CODE
    177         ; ORCODE = ICD or CPT code to be checked
    178         ; ORAPP  = "ICD" or "CHP"
    179         ; ORDATE = Date to be checked (defaults to current date)
    180         S:'+$G(ORDATE) ORDATE=DT
    181         S ORY=1
    182         I ORAPP="ICD" D
    183         . S ORY=+$$STATCHK^ICDAPIU(ORCODE,ORDATE)
    184         E  I ORAPP="CHP" D
    185         . S ORY=+$$STATCHK^ICPTAPIU(ORCODE,ORDATE)
    186         Q
    187 ICDACTIV(ORCODE,ORDATE) ; Check for active ICD code
    188         D CODACTIV(.ORY,ORCODE,"ICD",$G(ORDATE))
    189         Q +ORY
    190 CPTACTIV(ORCODE,ORDATE) ; Check for active CPT code
    191         D CODACTIV(.ORY,ORCODE,"CHP",$G(ORDATE))
    192         Q +ORY
    193 CXNOSHOW(ORY,ORDOCIEN)  ; Should workload requirement be skipped for this note's visit?
    194         ; RETURN VALUE:  0=SKIP ALL GUI WORKLOAD REQUIREMENTS
    195         ;                1=CONTINUE WITH OTHER GUI WORKLOAD LOGIC
    196         N ORTIU
    197         D DOCPARM^TIUSRVP1(.ORTIU,ORDOCIEN)          ; DBIA #4331
    198         S ORY=+$$CHKWKL^TIUPXAP2(ORDOCIEN,ORTIU(0))  ; DBIA #4332
    199         Q
     1ORWPCE2 ; ISL/JM - wrap calls to PCE ;9/25/2001
     2 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**10,85,109,116,173,195**;Dec 17, 1997
     3GETSET(ORWLST,ORWFILE,ORWFIELD,ORWNULL) ;gets set of codes
     4 ; ORWLST(n)=code^text for code
     5 N ORWPCE,ORWPCEL,ORWPCEC,ORWPCELO,ORWPCEHI,ORWPCECD,ORWPCET
     6 S ORWPCELO="abcdefghijklmnopqrstuvwxyz"
     7 S ORWPCEHI="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     8 D FIELD^DID(ORWFILE,ORWFIELD,"","POINTER","ORWPCE","ORWPCE")
     9 S ORWPCEL=$L(ORWPCE("POINTER"),";")-1
     10 F ORWPCEC=1:1:ORWPCEL D
     11 . S ORWPCECD=$P($P(ORWPCE("POINTER"),";",ORWPCEC),":",1)
     12 . S ORWPCET=$P($P(ORWPCE("POINTER"),";",ORWPCEC),":",2)
     13 . S ORWLST(ORWPCEC)=ORWPCECD_"^"_$E(ORWPCET)_$TR($E(ORWPCET,2,99),ORWPCEHI,ORWPCELO)
     14 S:$G(ORWNULL) ORWLST(0)="@^(None selected)"
     15 Q
     16 ;
     17IMMTYPE(ORWLST) ;get the list of active immunizations
     18 N IEN,CNT,BINDEX S (IEN,CNT,BINDEX)=0
     19 F  S BINDEX=$O(^AUTTIMM("B",BINDEX)) Q:BINDEX']""  F  S IEN=$O(^(BINDEX,IEN)) Q:'+IEN  I $D(^AUTTIMM(IEN,0))#2,+$P(^(0),"^",7)=0 S CNT=CNT+1,ORWLST(CNT)=IEN_"^"_$P(^(0),"^")
     20 Q
     21 ;
     22SKTYPE(ORWLST) ;get the list of active skin test
     23 N IEN,CNT,BINDEX S (IEN,CNT,BINDEX)=0
     24 F  S BINDEX=$O(^AUTTSK("B",BINDEX)) Q:BINDEX']""  F  S IEN=$O(^(BINDEX,IEN)) Q:'+IEN  I $D(^AUTTSK(IEN,0))#2,+$P(^(0),"^",3)=0 S CNT=CNT+1,ORWLST(CNT)=IEN_"^"_$P(^(0),"^")
     25 Q
     26 ;
     27EDTTYPE(ORWLST) ;get the list of active education topics
     28 N IEN,CNT,BINDEX S (IEN,CNT,BINDEX)=0
     29 F  S BINDEX=$O(^AUTTEDT("B",BINDEX)) Q:BINDEX']""  F  S IEN=$O(^(BINDEX,IEN)) Q:'+IEN  I $D(^AUTTEDT(IEN,0))#2,+$P(^(0),"^",3)=0 S CNT=CNT+1,ORWLST(CNT)=IEN_"^"_$P(^(0),"^")
     30 Q
     31 ;
     32HFTYPE(ORWLST,ADDCATS) ;get the list of active  health factors
     33 N IEN,CNT,BINDEX,REC
     34 S (IEN,CNT,BINDEX)=0,ADDCATS=+$G(ADDCATS)
     35 F  S BINDEX=$O(^AUTTHF("B",BINDEX)) Q:BINDEX']""  D
     36 .F  S IEN=$O(^AUTTHF("B",BINDEX,IEN)) Q:'+IEN  D
     37 ..S REC=$G(^AUTTHF(IEN,0))
     38 ..I +$P(REC,U,11) S REC=""
     39 ..I 'ADDCATS,$P(REC,U,10)="C" S REC=""
     40 ..I REC'="" D
     41 ...S CNT=CNT+1,ORWLST(CNT)=IEN_U_$P(REC,U)
     42 ...I ADDCATS S ORWLST(CNT)=ORWLST(CNT)_U_$P(REC,U,10)_U_$P(REC,U,3)
     43 Q
     44 ;
     45EXAMTYPE(ORWLST) ;get the list of active exams
     46 N IEN,CNT,BINDEX S (IEN,CNT,BINDEX)=0
     47 F  S BINDEX=$O(^AUTTEXAM("B",BINDEX)) Q:BINDEX']""  F  S IEN=$O(^(BINDEX,IEN)) Q:'+IEN  I $D(^AUTTEXAM(IEN,0))#2,+$P(^(0),"^",4)=0 S CNT=CNT+1,ORWLST(CNT)=IEN_"^"_$P(^(0),"^")
     48 Q
     49 ;
     50TRTTYPE(ORWLST) ;get the list of active treatments
     51 N IEN,CNT,BINDEX S (IEN,CNT,BINDEX)=0
     52 F  S BINDEX=$O(^AUTTTRT("B",BINDEX)) Q:BINDEX']""  F  S IEN=$O(^(BINDEX,IEN)) Q:'+IEN  I $D(^AUTTTRT(IEN,0))#2,+$P(^(0),"^",4)=0 S CNT=CNT+1,ORWLST(CNT)=IEN_"^"_$P(^(0),"^")
     53 Q
     54 ;
     55ACTIVPRV(ORRETURN,ORWPROV,ORWDT) ;get if provider is active or not
     56 S ORRETURN=$$ACTIVPRV^PXAPI(ORWPROV,ORWDT)
     57 Q
     58GETVISIT(VISIT,IEN,DFN,VSITSTR) ;Get the visit IEN
     59 I +$G(IEN)<1 D  I 1
     60 .S VISIT=$$GETENC^PXAPI(DFN,$P(VSITSTR,";",2),$P(VSITSTR,";"))
     61 E  S VISIT=$P(^TIU(8925,IEN,0),U,3)
     62 Q
     63GAFOK(ORY) ; Returns true if all supporting MH GAF Code exists
     64 S ORY=0
     65 I $T(GAFHX^YSGAFAPI)'="",$T(ENT^YSGAFAP1)'="" S ORY=1
     66 Q
     67MHCLINIC(ORY,ORIEN)     ; See if this is a mental health clinic
     68 I $T(MHCLIN^SDUTL2)="" S ORY=1
     69 E  S ORY=$$MHCLIN^SDUTL2(ORIEN)
     70 Q
     71LOADGAF(ORY,ORINPUT) ; Retrieve GAF scores
     72 D GAFHX^YSGAFAPI(.ORY,.ORINPUT)
     73 Q
     74SAVEGAF(ORY,ORINPUT) ; Save new GAF score
     75 N ORDATA
     76 D ENT^YSGAFAP1(.ORDATA,.ORINPUT)
     77 S ORY=($G(ORDATA(1))="[DATA]")
     78 Q
     79FORCE(ORY,USER,LOC) ; Retrieve FORCE GUI PCE Entry for a given User/Location
     80 N SRV,ORTMP,ORERR
     81 S USER=$G(USER,DUZ)
     82 S SRV=$P($G(^VA(200,USER,5)),U)
     83 D GETLST^XPAR(.ORTMP,"USR^LOC.`"_$G(LOC)_"^SRV.`"_+$G(SRV)_"^DIV^SYS^PKG","ORWPCE FORCE PCE ENTRY","Q",.ORERR)
     84 S ORY=+$P($G(ORTMP(1)),U,2)
     85 Q
     86HASCPT(ORY,ORLIST)        ; Returns true if there are any mapped CPT Codes
     87 N IEN,IDX,FOUND
     88 S IDX=0
     89 F  S IDX=$O(ORLIST(IDX)) Q:'+IDX  D
     90 . S FOUND=0
     91 . S IEN=$$FIND1^DIC(811.1,"","QX",ORLIST(IDX))
     92 . I +IEN S FOUND=+$$GET1^DIQ(811.1,IEN,.05,"I")
     93 . S ORY(IDX)=ORLIST(IDX)_"="_FOUND
     94 Q
     95ASKPCE(ORY,USER,LOC) ; Returns ORWPCE ASK ENCOUNTER UPDATE parameter value
     96 N SRV,ORTMP,ORERR
     97 S USER=$G(USER,DUZ)
     98 S SRV=$P($G(^VA(200,USER,5)),U)
     99 D GETLST^XPAR(.ORTMP,"USR^LOC.`"_$G(LOC)_"^SRV.`"_+$G(SRV)_"^DIV^SYS^PKG","ORWPCE ASK ENCOUNTER UPDATE","Q",.ORERR)
     100 S ORY=+$P($G(ORTMP(1)),U,2)
     101 Q
     102GAFURL(URL) ;Returns the MH GAF Web Page URL
     103 S URL=""
     104 I $T(GAFURL^YTAPI5)'="" D
     105 .N ORY
     106 .D GAFURL^YTAPI5(.ORY)
     107 .I $G(ORY(1))="[DATA]" S URL=$G(ORY(2))
     108 Q
     109MHTESTOK(ORY) ; Returns True if all supporting MH Test APIs exist
     110 D GAFOK(.ORY)
     111 I +ORY,+$G(DUZ),$T(SAVEIT^YTAPI1)'="",$T(PREVIEW^YTAPI4)'="",$T(SHOWALL^YTAPI3)'="",$T(LISTONE^YTAPI)'="",$T(MHS^PXRMRPCC)'="",$T(MHR^PXRMRPCC)'="",$T(MH^PXRMRPCC)'="" D
     112 . N SRV
     113 . S SRV=$P($G(^VA(200,DUZ,5)),U)
     114 . S ORY=$$GET^XPAR(DUZ_";VA(200,^SRV.`"_+$G(SRV)_"^DIV^SYS","PXRM MENTAL HEALTH ACTIVE",1,"Q")
     115 . I +ORY S ORY=1
     116 Q
     117MHATHRZD(ORY,TEST,USER) ;Indicates that user can score test
     118 N ORYS,ORANS
     119 I $T(PRIVL^YTAPI5)="" S ORY=1 Q
     120 S ORY=0
     121 S ORYS("CODE")=TEST
     122 S ORYS("STAFF")=USER
     123 D PRIVL^YTAPI5(.ORANS,.ORYS)
     124 I $G(ORANS(1))="[DATA]" S ORY=+$P($G(ORANS(2)),U,1)
     125 Q
     126ANYTIME(ORY) ;Returns status of the ORWPCE ANYTIME ENCOUNTERS parameter
     127 N SRV
     128 S SRV=$P($G(^VA(200,DUZ,5)),U)
     129 S ORY=$$GET^XPAR(DUZ_";VA(200,^SRV.`"_+$G(SRV)_"^DIV^SYS","ORWPCE ANYTIME ENCOUNTERS",1,"Q")
     130 I +ORY S ORY=1
     131 Q
     132AUTOVSIT(ORY,LOC) ; Returns TRUE if automatic selection of Visit Type
     133 N SRV
     134 S SRV=$P($G(^VA(200,DUZ,5)),U)
     135 S ORY=$$GET^XPAR(DUZ_";VA(200,^LOC.`"_$G(LOC)_"^SRV.`"_+$G(SRV)_"^DIV^SYS","ORWPCE DISABLE AUTO VISIT TYPE",1,"Q")
     136 I +ORY S ORY=1
     137 S ORY='ORY
     138 Q
     139DOCHKOUT(ORY,LOC) ; Returns TRUE if automatic selection of Visit Type
     140 N SRV
     141 S SRV=$P($G(^VA(200,DUZ,5)),U)
     142 S ORY=$$GET^XPAR(DUZ_";VA(200,^LOC.`"_$G(LOC)_"^SRV.`"_+$G(SRV)_"^DIV^SYS","ORWPCE DISABLE AUTO CHECKOUT",1,"Q")
     143 I +ORY S ORY=1
     144 S ORY='ORY
     145 Q
     146CHKOUT(LOC) ; Returns TRUE if automatic selection of Visit Type
     147 N ORY
     148 D DOCHKOUT(.ORY,LOC)
     149 Q ORY
     150EXCLUDED(ORY,LOC,TYPE) ; Returns list of excluded PCE data elements
     151 N SRV,PARAM
     152 S PARAM=$S(TYPE=1:"IMMUNIZATIONS",TYPE=2:"SKIN TESTS",TYPE=3:"PATIENT ED",TYPE=4:"HEALTH FACTORS",TYPE=5:"EXAMS",1:"")
     153 Q:PARAM=""
     154 S SRV=$P($G(^VA(200,DUZ,5)),U)
     155 S PARAM="ORWPCE EXCLUDE "_PARAM
     156 D GETLST^XPAR(.ORY,"USR^LOC.`"_$G(LOC)_"^SRV.`"_+$G(SRV)_"^DIV^SYS^PKG",PARAM,"Q",.ORERR)
     157 Q
     158ISCLINIC(ORY,ORLOC) ; Returns TRUE if location is a clinic
     159 N ORTYP
     160 S ORY=0
     161 S ORTYP=$$GET1^DIQ(44,+ORLOC,2,"I")
     162 I (ORTYP="C")!(ORTYP="M") S ORY=1
     163 Q
     164HNCOK(ORY) ; Returns true if Head and/or Neck Cancer is enabled
     165 S ORY=0
     166 I $$PATCH^XPDUTL("DG*5.3*397"),$$PATCH^XPDUTL("SD*5.3*244"),$$PATCH^XPDUTL("PX*1.0*111"),$$PATCH^XPDUTL("IVM*2.0*46") S ORY=1
     167 Q
     168 ;
     169CODACTIV(ORY,ORCODE,ORAPP,ORDATE)       ; Is code active on the given date?
     170 ; Remote procedure:  ORWPCE ACTIVE CODE
     171 ; ORCODE = ICD or CPT code to be checked
     172 ; ORAPP  = "ICD" or "CHP"
     173 ; ORDATE = Date to be checked (defaults to current date)
     174 S:'+$G(ORDATE) ORDATE=DT
     175 S ORY=1
     176 I ORAPP="ICD" D
     177 . S ORY=+$$STATCHK^ICDAPIU(ORCODE,ORDATE)
     178 E  I ORAPP="CHP" D
     179 . S ORY=+$$STATCHK^ICPTAPIU(ORCODE,ORDATE)
     180 Q
     181ICDACTIV(ORCODE,ORDATE) ; Check for active ICD code
     182 D CODACTIV(.ORY,ORCODE,"ICD",$G(ORDATE))
     183 Q +ORY
     184CPTACTIV(ORCODE,ORDATE) ; Check for active CPT code
     185 D CODACTIV(.ORY,ORCODE,"CHP",$G(ORDATE))
     186 Q +ORY
     187CXNOSHOW(ORY,ORDOCIEN) ; Should workload requirement be skipped for this note's visit?
     188 ; RETURN VALUE:  0=SKIP ALL GUI WORKLOAD REQUIREMENTS
     189 ;                1=CONTINUE WITH OTHER GUI WORKLOAD LOGIC
     190 N ORTIU
     191 D DOCPARM^TIUSRVP1(.ORTIU,ORDOCIEN)          ; DBIA #4331
     192 S ORY=+$$CHKWKL^TIUPXAP2(ORDOCIEN,ORTIU(0))  ; DBIA #4332
     193 Q
Note: See TracChangeset for help on using the changeset viewer.