| 1 | TIULA1 ; SLC/JER - More interactive functions ;4/18/03
 | 
|---|
| 2 |  ;;1.0;TEXT INTEGRATION UTILITIES;**75,113,207**;Jun 20, 1997
 | 
|---|
| 3 | TRAVERSE(DA,RETURN,PARM,TYPE) ; Select Document Type(s)
 | 
|---|
| 4 |  N C,I,XQORM,Y N:'$D(LEVEL) LEVEL S LEVEL=+$G(LEVEL)+1
 | 
|---|
| 5 |  S:$G(TYPE)']"" TYPE="D"
 | 
|---|
| 6 |  S XQORM=DA_";TIU(8925.1,",XQORM(0)=$S($L($G(PARM)):PARM,1:"AD")
 | 
|---|
| 7 |  I XQORM(0)["D" S XQORM("H")="W !!,$$CENTER^TIULS(""--- ""_$P(^TIU(8925.1,+DA,0),U,3)_"" ---""),!"
 | 
|---|
| 8 |  S XQORM("B")=$G(^DISV(DUZ,"XQORM",DA_";TIU(8925.1,",1))
 | 
|---|
| 9 |  S XQORM("A")="Select "_$S(XQORM(0)["D":"Document",1:$P(^TIU(8925.1,+DA,0),U,3))_$S("CD"[$P(^TIU(8925.1,+DA,0),U,4):" Component",1:" Type")_$S(+XQORM(0)'=1:"(s)",1:"")_": "
 | 
|---|
| 10 |  D EN^XQORM
 | 
|---|
| 11 |  M RETURN(LEVEL)=Y
 | 
|---|
| 12 |  S I=0 F  S I=$O(Y(I)) Q:+I'>0  D
 | 
|---|
| 13 |  . S J=+$P(Y(I),U,2)
 | 
|---|
| 14 |  . I $P(^TIU(8925.1,+J,0),U,4)'=TYPE,$D(^TIU(8925.1,+J,10))'<10 D TRAVERSE(+J,.RETURN,$G(PARM))
 | 
|---|
| 15 |  Q
 | 
|---|
| 16 | ASKSIG() ; Prompt for ES, return encrypted data
 | 
|---|
| 17 |  N ESNAME,ESTITLE,Y S Y=0
 | 
|---|
| 18 |  D SIG^XUSESIG I X1']"" S:'$D(X) X=0 D BADSIG^TIULG(X) G ASKX
 | 
|---|
| 19 |  S ESNAME=$P($G(^VA(200,DUZ,20)),U,2),ESTITLE=$P($G(^(20)),U,3)
 | 
|---|
| 20 |  S Y=1_U_ESNAME_U_ESTITLE
 | 
|---|
| 21 | ASKX Q Y
 | 
|---|
| 22 | ASKSUBJ() ; Handle query by subject
 | 
|---|
| 23 |  N Y
 | 
|---|
| 24 |  S Y=$$READ^TIUU("FO","Where SUBJECT CONTAINS")
 | 
|---|
| 25 |  Q $$UPPER^TIULS(Y)
 | 
|---|
| 26 | ASKLOC() ; Handle query by location
 | 
|---|
| 27 |  N Y
 | 
|---|
| 28 |  S Y=$$READ^TIUU("P^44:AEMQ","Select HOSPITAL LOCATION")
 | 
|---|
| 29 |  Q Y
 | 
|---|
| 30 | TYPMATCH(TYPE,CURTYP) ; Check for type match
 | 
|---|
| 31 |  N TIUI,TIUY S TIUY=0
 | 
|---|
| 32 |  I $L(TYPE,"!")=1,TYPE=CURTYP S TIUY=1
 | 
|---|
| 33 |  E  F TIUI=1:1:$L(TYPE,"!") I $P(TYPE,"!",TIUI)=CURTYP S TIUY=1 Q
 | 
|---|
| 34 |  Q TIUY
 | 
|---|
| 35 | DOCLIST(CLASS,Y,PARM,DFLT) ; Get preferred documents for user
 | 
|---|
| 36 |  N TIUDA,XQORM,X
 | 
|---|
| 37 |  S TIUDA=+$O(^TIU(8925.98,"AC",DUZ,CLASS,0)),XQORM=TIUDA_";TIU(8925.98,"
 | 
|---|
| 38 |  I +TIUDA'>0!(+$O(^XUTL("XQORM",XQORM,0))'>0) S Y=-1 Q
 | 
|---|
| 39 |  I $G(DFLT)="LAST" D
 | 
|---|
| 40 |  . S DFLT=$O(^DISV(DUZ,"XQORM",XQORM,0))
 | 
|---|
| 41 |  . S DFLT=$S(+DFLT:$G(^DISV(DUZ,"XQORM",XQORM,DFLT)),1:"")
 | 
|---|
| 42 |  S XQORM(0)=$S(+$P($G(^TIU(8925.98,+TIUDA,10,0)),U,3)=1:"F",1:PARM)
 | 
|---|
| 43 |  S XQORM("B")=$S(+$P($G(^TIU(8925.98,+TIUDA,10,0)),U,3)=1:$P($G(^(0)),U,3),1:DFLT)
 | 
|---|
| 44 |  I XQORM(0)'["A" S X=XQORM("B")
 | 
|---|
| 45 |  S XQORM("A")=$S(CLASS=3:"",1:"Select ")_$S(CLASS=3:"TITLE",1:"Document")_$S(+XQORM(0)'=1:"(s)",1:"")_": "
 | 
|---|
| 46 |  I XQORM(0)["D" D
 | 
|---|
| 47 |  . N LISTNAME,PERSNAME S LISTNAME=$$PNAME^TIULC1(CLASS)
 | 
|---|
| 48 |  . I $E(LISTNAME,$L(LISTNAME))="Y" D
 | 
|---|
| 49 |  . . S LISTNAME=$E(LISTNAME,1,($L(LISTNAME)-1))_"IES"
 | 
|---|
| 50 |  . I $E(LISTNAME,$L(LISTNAME))="y" D
 | 
|---|
| 51 |  . . S LISTNAME=$E(LISTNAME,1,($L(LISTNAME)-1))_"ies"
 | 
|---|
| 52 |  . S PERSNAME=$$PERSNAME^TIULC1(DUZ)
 | 
|---|
| 53 |  . S LISTNAME=""""_"--- "_LISTNAME_" for "_PERSNAME_" ---"_""""
 | 
|---|
| 54 |  . S XQORM("H")="W !!,$$CENTER^TIULS("_LISTNAME_"),!"
 | 
|---|
| 55 |  S XQORM("S")="I $$CANPICK^TIULP(+$G(^TIU(8925.98,+DA(1),10,+DA,0)))"
 | 
|---|
| 56 |  D EN^XQORM
 | 
|---|
| 57 |  Q
 | 
|---|
| 58 | SELCAT(Y,PARM,DFLT,TIUOVER) ; Get preferred documents for user
 | 
|---|
| 59 |  N TIUI,TIUDA,CATREC,CATLOOK,CATSCRN,CATVAL,XQORM,X ;P75 newed CATVAL
 | 
|---|
| 60 |  N TIUT1,TIUT2,TIUTSTR,TIUHOLD
 | 
|---|
| 61 |  S TIUI=0
 | 
|---|
| 62 |  S XQORM="1;TIU(8925.8,"
 | 
|---|
| 63 |  I $G(DFLT)="LAST" D
 | 
|---|
| 64 |  . S DFLT=$O(^DISV(DUZ,"XQORM",XQORM,0))
 | 
|---|
| 65 |  . S DFLT=$S(+DFLT:$G(^DISV(DUZ,"XQORM",XQORM,DFLT)),1:"")
 | 
|---|
| 66 |  S XQORM(0)=$G(PARM,"1A")
 | 
|---|
| 67 |  S XQORM("B")=$G(DFLT,"AUTHOR")
 | 
|---|
| 68 |  I +$G(ORVP) S XQORM("S")="I $G(^XUTL(""XQORM"",XQORM,+$O(^XUTL(""XQORM"",XQORM,""B"",DA,0)),0))'[""Patient"""
 | 
|---|
| 69 |  I XQORM(0)'["A" S X=XQORM("B")
 | 
|---|
| 70 |  S XQORM("A")="Select SEARCH CATEGOR"_$S(+XQORM(0)'=1:"IES",1:"Y")_": "
 | 
|---|
| 71 |  I XQORM(0)["D" S XQORM("H")="W !!,$$CENTER^TIULS(""--- Search Categories ---""),!"
 | 
|---|
| 72 |  D EN^XQORM
 | 
|---|
| 73 |  ; BEGIN TIU207
 | 
|---|
| 74 |  ; FLAG IF TITLE OR ALL CATEGORIES WERE SELECTED. NEEDED IN HDR^TIURH AS ^TMP("TIUR","TIU OVERRIDE")
 | 
|---|
| 75 |  S TIUT1="",TIUTSTR=""
 | 
|---|
| 76 |  F  S TIUT1=$O(Y(TIUT1)) Q:TIUT1=""  D
 | 
|---|
| 77 |  .I $P(Y(TIUT1),"^",3)="Title" S TIUTSTR=TIUTSTR_"TITLE"
 | 
|---|
| 78 |  .I $P(Y(TIUT1),"^",3)="All Categories" S TIUTSTR=TIUTSTR_"ALL"
 | 
|---|
| 79 |  I TIUTSTR["TITLE" S TIUOVER=TIUTSTR
 | 
|---|
| 80 |  ; IF SPECIFIC CATEGORY AND ALL CATEGORIES WHERE SELECTED THEN REMOVE ALL CATEGORIES.
 | 
|---|
| 81 |  I $O(Y(""),-1)>1,TIUTSTR["ALL" D
 | 
|---|
| 82 |  .M TIUHOLD=Y K Y
 | 
|---|
| 83 |  .S TIUT1="",TIUT2=1
 | 
|---|
| 84 |  .F  S TIUT1=$O(TIUHOLD(TIUT1)) Q:TIUT1=""  D
 | 
|---|
| 85 |  ..I $P(TIUHOLD(TIUT1),"^",3)="All Categories" Q
 | 
|---|
| 86 |  ..S Y(TIUT2)=TIUHOLD(TIUT1)
 | 
|---|
| 87 |  ..S Y=TIUT2
 | 
|---|
| 88 |  ..S TIUT2=TIUT2+1
 | 
|---|
| 89 |  ; END TIU207
 | 
|---|
| 90 |  F  S TIUI=$O(Y(TIUI)) Q:+TIUI'>0  D
 | 
|---|
| 91 |  . S TIUDA=+$P(Y(TIUI),U,2)
 | 
|---|
| 92 |  . S CATREC=$G(^TIU(8925.8,TIUDA,0))
 | 
|---|
| 93 |  . S CATSCRN=$G(^TIU(8925.8,TIUDA,1))
 | 
|---|
| 94 |  . S CATLOOK=$G(^TIU(8925.8,TIUDA,2))
 | 
|---|
| 95 |  . S CATVAL=-1 ;P75
 | 
|---|
| 96 |  . I CATLOOK']"",+$P(CATREC,U,4) S CATVAL=$$DICLOOK(CATREC,CATSCRN)
 | 
|---|
| 97 |  . I CATLOOK]"" S CATVAL=$$LOOK(CATLOOK)
 | 
|---|
| 98 |  . I +CATVAL'=-1,$L(CATVAL) S Y(TIUI)=$P(CATREC,U,2)_U_CATVAL
 | 
|---|
| 99 |  . E  K Y(TIUI) S Y=+$G(Y)-1
 | 
|---|
| 100 |  Q
 | 
|---|
| 101 | DICLOOK(CATEGORY,SCREEN) ; Call ^DIC to get category value
 | 
|---|
| 102 |  N DIC,X,Y
 | 
|---|
| 103 |  S DIC=+$P(CATEGORY,U,4),DIC(0)="AEMQZ"
 | 
|---|
| 104 |  S DIC("A")="Select "_$P(CATEGORY,U)_": "
 | 
|---|
| 105 |  I SCREEN]"" X SCREEN
 | 
|---|
| 106 |  D ^DIC I +$G(DUOUT),(X="^^") S DIROUT=1
 | 
|---|
| 107 |  Q Y
 | 
|---|
| 108 | LOOK(LOOKUP) ; Execute LOOKUP CODE
 | 
|---|
| 109 |  N X,Y
 | 
|---|
| 110 |  X LOOKUP
 | 
|---|
| 111 |  Q Y
 | 
|---|
| 112 | GETVSIT(DFN) ; Visit selection code
 | 
|---|
| 113 |  N X,Y
 | 
|---|
| 114 |  I +$G(ORVP),'+$G(DFN) S DFN=+$G(ORVP)
 | 
|---|
| 115 |  D MAIN^TIUVISIT(.Y,$G(DFN))
 | 
|---|
| 116 |  S Y=$G(Y("VISIT"))
 | 
|---|
| 117 |  I +Y,+$P(Y,U,2) S $P(Y,U,2)=$$DATE^TIULS($P(Y,U,2),"MM/DD/YY HR:MIN")
 | 
|---|
| 118 |  Q Y
 | 
|---|
| 119 | GETTERM(X) ; Get Lexicon term
 | 
|---|
| 120 |  N DIC,USEX,Y
 | 
|---|
| 121 |  S DIC=757.01,DIC(0)="AEMQZ",DIC("A")="Select PROBLEM: "
 | 
|---|
| 122 |  D ^DIC
 | 
|---|
| 123 |  I +Y'>0,(X]""),(X'=" "),(X'["^") D
 | 
|---|
| 124 |  . S USEX=$$READ^TIUU("Y",">>>  Use "_X,"Yes")
 | 
|---|
| 125 |  . I +USEX S Y=1_U_X
 | 
|---|
| 126 |  Q Y
 | 
|---|
| 127 | GETDIV() ; Get Institution Number and Name
 | 
|---|
| 128 |  N TIUDIV,TIUSTN,Y
 | 
|---|
| 129 |  S TIUDIV=$S($P($G(^DG(43,1,"GL")),U,2):$$MULTDIV,1:$$PRIM^VASITE)
 | 
|---|
| 130 |  S TIUSTN=$$SITE^VASITE(,TIUDIV)
 | 
|---|
| 131 |  I $P(TIUSTN,U)>0,($P(TIUSTN,U,2)]"") D
 | 
|---|
| 132 |  . S Y=$P(TIUSTN,U)_U_$P(TIUSTN,U,2)
 | 
|---|
| 133 |  E  D
 | 
|---|
| 134 |  . S Y=-1
 | 
|---|
| 135 |  Q Y
 | 
|---|
| 136 | MULTDIV() ; User selects from active divisions
 | 
|---|
| 137 |  N DIR,X,Y
 | 
|---|
| 138 |  S DIR(0)="PA^40.8:EM"
 | 
|---|
| 139 |  S DIR("A")="Select DIVISION: "
 | 
|---|
| 140 |  S DIR("S")="I $$SITE^VASITE(,+Y)>0"
 | 
|---|
| 141 |  D ^DIR
 | 
|---|
| 142 |  Q +Y
 | 
|---|