| 1 | ORWDCN32 ; SLC/KCM/REV - Consults calls [ 12/16/97  12:47 PM ] ;14:50 PM 01 MAR 2001
 | 
|---|
| 2 |  ;;3.0;ORDER ENTRY/RESULTS REPORTING;**10,85**;Dec 17, 1997
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | DEF(LST,WHY)         ; load consult info    
 | 
|---|
| 5 |  N ILST,NAM,IEN,X
 | 
|---|
| 6 |  S ILST=0
 | 
|---|
| 7 |  S LST($$NXT)="~ShortList" D SHORT
 | 
|---|
| 8 |  I WHY="C" D
 | 
|---|
| 9 |  . S LST($$NXT)="~Inpt Cslt Urgencies" D INCURG
 | 
|---|
| 10 |  I WHY="P" D
 | 
|---|
| 11 |  . S LST($$NXT)="~Inpt Proc Urgencies" D INPURG
 | 
|---|
| 12 |  S LST($$NXT)="~Outpt Urgencies" D OUTURG
 | 
|---|
| 13 |  S LST($$NXT)="~Inpt Place" D INPLACE
 | 
|---|
| 14 |  S LST($$NXT)="~Outpt Place" D OUTPLACE
 | 
|---|
| 15 |  Q
 | 
|---|
| 16 | SHORT ;return list of Consults or Procedures quick orders
 | 
|---|
| 17 |  N I,TMP
 | 
|---|
| 18 |  Q:"CP"'[WHY
 | 
|---|
| 19 |  S I=$O(^ORD(100.98,"B",$S(WHY="C":"CSLT",WHY="P":"PROC"),0))
 | 
|---|
| 20 |  D GETQLST^ORWDXQ(.TMP,I,"Q")
 | 
|---|
| 21 |  S I=0 F  S I=$O(TMP(I)) Q:'I  D
 | 
|---|
| 22 |  . S LST($$NXT)="i"_TMP(I)
 | 
|---|
| 23 |  Q
 | 
|---|
| 24 | OUTPLACE ; load list of places
 | 
|---|
| 25 |  N X
 | 
|---|
| 26 |  F X="C^CONSULTANT'S CHOICE^C","E^EMERGENCY ROOM^E" D
 | 
|---|
| 27 |  . S LST($$NXT)="i"_X
 | 
|---|
| 28 |  S LST($$NXT)="d"_"C^CONSULTANT'S CHOICE^C"
 | 
|---|
| 29 |  Q
 | 
|---|
| 30 | INPLACE ; load list of places for outpatient
 | 
|---|
| 31 |  N X
 | 
|---|
| 32 |  F X="B^BEDSIDE^B","C^CONSULTANT'S CHOICE^C" D
 | 
|---|
| 33 |  . S LST($$NXT)="i"_X
 | 
|---|
| 34 |  S LST($$NXT)="d"_"B^BEDSIDE^B"
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 | INCURG ; get list of urgencies for inpatient consults
 | 
|---|
| 37 |  N IEN,GMRCURG,GMRCPRO,X
 | 
|---|
| 38 |  S GMRCURG="",GMRCPRO=""
 | 
|---|
| 39 |  F  S GMRCURG=$O(^ORD(101.42,"S.GMRCT",GMRCURG)) Q:GMRCURG=""  D
 | 
|---|
| 40 |  . S GMRCPRO=$O(^ORD(101,"B","GMRCURGENCY - "_GMRCURG,0))
 | 
|---|
| 41 |  . S LST($$NXT)="i"_$O(^ORD(101.42,"S.GMRCT",GMRCURG,0))_U_GMRCURG_U_GMRCPRO
 | 
|---|
| 42 |  S IEN=$O(^ORD(101.42,"B","ROUTINE",0)),GMRCPRO=$O(^ORD(101,"B","GMRCURGENCY - ROUTINE",0))
 | 
|---|
| 43 |  S LST($$NXT)="d"_IEN_U_"ROUTINE"_U_GMRCPRO
 | 
|---|
| 44 |  Q
 | 
|---|
| 45 | INPURG ; get list of urgencies for inpatient procedures
 | 
|---|
| 46 |  N IEN,GMRCURG,GMRCPRO,X
 | 
|---|
| 47 |  S GMRCURG="",GMRCPRO=""
 | 
|---|
| 48 |  F  S GMRCURG=$O(^ORD(101.42,"S.GMRCR",GMRCURG)) Q:GMRCURG=""  D
 | 
|---|
| 49 |  . S GMRCPRO=$O(^ORD(101,"B","GMRCURGENCY - "_GMRCURG,0))
 | 
|---|
| 50 |  . S LST($$NXT)="i"_$O(^ORD(101.42,"S.GMRCR",GMRCURG,0))_U_GMRCURG_U_GMRCPRO
 | 
|---|
| 51 |  S IEN=$O(^ORD(101.42,"B","ROUTINE",0)),GMRCPRO=$O(^ORD(101,"B","GMRCURGENCY - ROUTINE",0))
 | 
|---|
| 52 |  S LST($$NXT)="d"_IEN_U_"ROUTINE"_U_GMRCPRO
 | 
|---|
| 53 |  Q
 | 
|---|
| 54 | OUTURG ; get list of urgencies for outpatient consults/procedures
 | 
|---|
| 55 |  N IEN,GMRCURG,GMRCPRO,X
 | 
|---|
| 56 |  S GMRCURG="",GMRCPRO=""
 | 
|---|
| 57 |  F  S GMRCURG=$O(^ORD(101.42,"S.GMRCO",GMRCURG)) Q:GMRCURG=""  D
 | 
|---|
| 58 |  . S GMRCPRO=$O(^ORD(101,"B","GMRCURGENCY - "_GMRCURG,0))
 | 
|---|
| 59 |  . S LST($$NXT)="i"_$O(^ORD(101.42,"S.GMRCO",GMRCURG,0))_U_GMRCURG_U_GMRCPRO
 | 
|---|
| 60 |  S IEN=$O(^ORD(101.42,"B","ROUTINE",0)),GMRCPRO=$O(^ORD(101,"B","GMRCURGENCY - ROUTINE",0))
 | 
|---|
| 61 |  S LST($$NXT)="d"_IEN_U_"ROUTINE"_U_GMRCPRO
 | 
|---|
| 62 |  Q
 | 
|---|
| 63 | NXT() ; increments ILST
 | 
|---|
| 64 |  S ILST=ILST+1
 | 
|---|
| 65 |  Q ILST
 | 
|---|
| 66 | LOOK200(VAL,X)     ; Lookup a person in 200
 | 
|---|
| 67 |  S VAL=$$FIND1^DIC(200,"","",X)
 | 
|---|
| 68 |  Q
 | 
|---|
| 69 | ORDRMSG(Y,ORDITM) ;returns order message for this consult/procedure orderable
 | 
|---|
| 70 |  N I
 | 
|---|
| 71 |  S I=0 F  S I=$O(^ORD(101.43,ORDITM,8,I)) Q:I'>0  S Y(I)=^(I,0)
 | 
|---|
| 72 |  Q
 | 
|---|
| 73 | GETPROTO(Y,ORIEN) ;Get Protocol file IEN from OR IEN
 | 
|---|
| 74 |  S Y=$P($G(^ORD(101.43,ORIEN,0)),U,2)
 | 
|---|
| 75 |  Q
 | 
|---|
| 76 | GETOINUM(Y,ORNUM) ;Get Orderable Item IEN from Protocol IEN
 | 
|---|
| 77 |  S Y=$O(^ORD(101.43,"ID",ORNUM,0))
 | 
|---|
| 78 |  Q
 | 
|---|
| 79 | GETPRONM(Y,ORNAME) ;Get Protocol IEN given name
 | 
|---|
| 80 |  S Y=$O(^ORD(101,"B",ORNAME,0))_";99PRO"
 | 
|---|
| 81 |  Q
 | 
|---|
| 82 | PROC(Y,FROM,DIR) ; Return a subset of orderable procedures
 | 
|---|
| 83 |  ; .Return Array, Starting Text, Direction
 | 
|---|
| 84 |  ; ^ORD(101.43,"S.PROC",UpperCase,DA)=Mne^MixedCase^InactvDt^.01IfMne
 | 
|---|
| 85 |  ; Y(n)=IEN^.01 Name^.01 Name  -or-  IEN^Synonym <.01 Name>^.01 Name
 | 
|---|
| 86 |  N I,IEN,CNT,X,DTXT,ORID,ORSVCCNT S I=0,CNT=44
 | 
|---|
| 87 |  F  Q:I'<CNT  S FROM=$O(^ORD(101.43,"S.PROC",FROM),DIR) Q:FROM=""  D
 | 
|---|
| 88 |  . S IEN=0 F  S IEN=$O(^ORD(101.43,"S.PROC",FROM,IEN)) Q:'IEN  D
 | 
|---|
| 89 |  . . S X=^ORD(101.43,"S.PROC",FROM,IEN)
 | 
|---|
| 90 |  . . I +$P(X,U,3),$P(X,U,3)<$$NOW^XLFDT Q
 | 
|---|
| 91 |  . . S ORID=$P($G(^ORD(101.43,IEN,0)),U,2)
 | 
|---|
| 92 |  . . ;I $P($G(^ORD(101,ORIEN,0)),U,3)'="" Q   ; Removed for v14
 | 
|---|
| 93 |  . . D GETSVC^GMRCPR0(.ORSVCCNT,ORID) Q:+ORSVCCNT=0
 | 
|---|
| 94 |  . . S I=I+1
 | 
|---|
| 95 |  . . I 'X S Y(I)=IEN_U_$P(X,U,2)_U_$P(X,U,2)_U_ORID
 | 
|---|
| 96 |  . . E  S Y(I)=IEN_U_$P(X,U,2)_$C(9)_"<"_$P(X,U,4)_">"_U_$P(X,U,4)_U_ORID
 | 
|---|
| 97 |  Q
 | 
|---|
| 98 | NEWDLG(Y,ORTYPE,ORLOC) ; Return order dialog info for New Consult OR PROCEDURE
 | 
|---|
| 99 |  N DGRP,ID,IEN,TXT,TYP,X,X0,X5,ENT
 | 
|---|
| 100 |  S ENT="ALL"
 | 
|---|
| 101 |  I $G(ORLOC) S ORLOC=+ORLOC_";SC(",ENT=ENT_"^"_ORLOC
 | 
|---|
| 102 |  I ORTYPE="C" S X=$$GET^XPAR(ENT,"ORWDX NEW CONSULT",1,"I")
 | 
|---|
| 103 |  E  S X=$$GET^XPAR(ENT,"ORWDX NEW PROCEDURE",1,"I")
 | 
|---|
| 104 |  S IEN=+X,X0=$G(^ORD(101.41,IEN,0)),X5=$G(^(5))
 | 
|---|
| 105 |  S TYP=$P(X0,U,4),DGRP=+$P(X0,U,5),ID=+$P(X5,U,5),TXT=$P(X5,U,4)
 | 
|---|
| 106 |  S Y=IEN_";"_ID_";"_DGRP_";"_TYP_U_TXT
 | 
|---|
| 107 |  Q
 | 
|---|