[613] | 1 | TIURECL1 ; SLC/PKR,JER - Expand/collapse LM views ;5/8/03
|
---|
| 2 | ;;1.0;TEXT INTEGRATION UTILITIES;**100,113**;Jun 20, 1997
|
---|
| 3 | ; 7/6 Split TIURECL into TIURECL & TIURECL1, move RESOLVE to TIURECL1
|
---|
| 4 | ; 7/10 Move INSID, INSADD, VEXREQ, ISSUB to TIURECL1
|
---|
| 5 | ; 9/7 Move INSKIDS, INSADD, & associated modules to TIURECL2
|
---|
| 6 | ;=======================================================================
|
---|
| 7 | ISSUB(CLASS1,CLASS2,LEVEL) ;Return true if CLASS2 is sub to CLASS1.
|
---|
| 8 | N IND,ISSUB
|
---|
| 9 | I LEVEL(CLASS1)'<LEVEL(CLASS2) Q 0
|
---|
| 10 | ;Check sublevel links between class1 and class2
|
---|
| 11 | S ISSUB=1
|
---|
| 12 | F IND=(CLASS1+1):1:(CLASS2-1) D
|
---|
| 13 | . I LEVEL(IND)=1 D Q
|
---|
| 14 | .. S ISSUB=0
|
---|
| 15 | Q ISSUB
|
---|
| 16 | ;
|
---|
| 17 | ;======================================================================
|
---|
| 18 | VEXREQ(VALMY) ;Check for valid expand/contract requests.
|
---|
| 19 | ; A list of documents to expand/contract is invalid if any docmt
|
---|
| 20 | ;is a sub docmt of another docmt on the list.
|
---|
| 21 | N END,START
|
---|
| 22 | S START=$O(VALMY(""))
|
---|
| 23 | S END=$O(VALMY(""),-1)
|
---|
| 24 | I START=END Q 1
|
---|
| 25 | ;
|
---|
| 26 | N ACTION,ACTIND,ACTJND,CIND,CN,IND,JND,LEVEL,MSG,TEXT,VALID
|
---|
| 27 | ;Build the level list.
|
---|
| 28 | F IND=START:1:END D
|
---|
| 29 | . S LEVEL(IND)=$L(@VALMAR@(IND,0),"|")
|
---|
| 30 | S VALID=1
|
---|
| 31 | S IND=""
|
---|
| 32 | F S IND=$O(VALMY(IND)) Q:+IND'>0 D
|
---|
| 33 | . S TEXT(IND)=$G(@VALMAR@(IND,0))
|
---|
| 34 | . S ACTIND=$S(TEXT(IND)["+":"+ ",TEXT(IND)["-":"-",1:"")
|
---|
| 35 | . I ACTIND="" Q
|
---|
| 36 | . S ACTION(IND)=$S(TEXT(IND)["+":"expand ",TEXT(IND)["-":"collapse ",1:"")
|
---|
| 37 | . S JND=IND
|
---|
| 38 | . F S JND=$O(VALMY(JND)) Q:+JND'>0 D
|
---|
| 39 | .. S TEXT(JND)=$G(@VALMAR@(JND,0))
|
---|
| 40 | .. S ACTJND=$S(TEXT(JND)["+":"+",TEXT(JND)["-":"-",1:"")
|
---|
| 41 | .. I ACTJND="" Q
|
---|
| 42 | .. S ACTION(JND)=$S(TEXT(JND)["+":"expand ",TEXT(JND)["-":"collapse ",1:"")
|
---|
| 43 | .. I $$ISSUB(IND,JND,.LEVEL) D
|
---|
| 44 | ... I ACTION(IND)'=ACTION(JND) D Q
|
---|
| 45 | .... S CIND(IND)=$P(^TMP("TIURIDX",$J,IND),U,2)
|
---|
| 46 | .... S CN(IND)=$P(^TIU(8925,CIND(IND),0),U,1)
|
---|
| 47 | .... S CIND(JND)=$P(^TMP("TIURIDX",$J,JND),U,2)
|
---|
| 48 | .... S CN(JND)=$P(^TIU(8925,CIND(JND),0),U,1)
|
---|
| 49 | .... I '+$G(HUSH) D
|
---|
| 50 | ..... S MSG="You cannot "_ACTION(IND)_CN(IND)_" and "_ACTION(JND)_CN(JND)
|
---|
| 51 | ..... D MSG^VALM10(MSG)
|
---|
| 52 | ..... H 4
|
---|
| 53 | .... S VALID=0
|
---|
| 54 | Q VALID
|
---|
| 55 | ;======================================================================
|
---|
| 56 | IDDATA(TIUDA,TIUD0,TIUD21) ; Return TIUGDATA:
|
---|
| 57 | ; TIUGDATA = 0 or
|
---|
| 58 | ; = TIUDA^haskid^IDparent^prmsort, where
|
---|
| 59 | ; TIUDA = note DA
|
---|
| 60 | ; haskid = 1 if note has ID kid, else 0
|
---|
| 61 | ; IDparent = parent DA if note has ID parent, else 0
|
---|
| 62 | ; prmsort = 'TITLE' if entries ordered by title, else 'REFDT'
|
---|
| 63 | ;Note: TIUGDATA is nonzero if note is POSSIBLE DAD, or dad, or kid.
|
---|
| 64 | ; Requires TIUDA; TIUD0 & TIUD21 are optional
|
---|
| 65 | N HASIDKID,POSSPRNT,TIUDPRM,PRMSORT,TIUGDATA
|
---|
| 66 | I '$G(TIUD0) S TIUD0=^TIU(8925,TIUDA,0)
|
---|
| 67 | I '$D(TIUD21) S TIUD21=+$G(^TIU(8925,TIUDA,21))
|
---|
| 68 | S (TIUGDATA,POSSPRNT)=0
|
---|
| 69 | S HASIDKID=$$HASIDKID^TIUGBR(TIUDA)
|
---|
| 70 | I 'TIUD21,'HASIDKID S POSSPRNT=$$POSSPRNT^TIULP(+TIUD0) ;has bus rules
|
---|
| 71 | I TIUD21!HASIDKID!POSSPRNT D
|
---|
| 72 | . I 'TIUD21 D I 1
|
---|
| 73 | . . D DOCPRM^TIULC1(+TIUD0,.TIUDPRM)
|
---|
| 74 | . . S PRMSORT=$S($P($G(TIUDPRM(0)),U,18):"TITLE",1:"REFDT")
|
---|
| 75 | . E S PRMSORT=""
|
---|
| 76 | . S TIUGDATA=TIUDA_U_HASIDKID_U_TIUD21_U_PRMSORT
|
---|
| 77 | Q TIUGDATA
|
---|
| 78 | ;
|
---|
| 79 | RESOLVE(DA,TSTART,FIRSTPFX,XIDDATA) ; Get document data for insertion
|
---|
| 80 | ; Receives DA, TSTART, FIRSTPFX
|
---|
| 81 | ; FIRSTPFX = $$INSPFIX of parent of inserted document.
|
---|
| 82 | ; Returns line TSTART.
|
---|
| 83 | ; Receives XIDDATA by ref, finds it, and passes it back.
|
---|
| 84 | N DIC,DIQ,DR,TIUR,PT,MOM,ADT,DDT,LCT,AUT,AMD,EDT,SDT,XDT,RMD,TIULST4
|
---|
| 85 | N TIUP,TIUD0,TIUD12,TIUD13,TIUD15,TIULI,STATX,DOC,TIUY,TIUI,TIUFLDS
|
---|
| 86 | N PREFIX,GETTL,GETPT,TIUD21,INSTA,TIUSTN
|
---|
| 87 | I '$D(^TIU(8925,DA,0)) S TIUY="Record #"_DA_" is missing." G RESOLVEX
|
---|
| 88 | S TIUD0=$G(^TIU(8925,+DA,0)),TIUD12=$G(^TIU(8925,+DA,12))
|
---|
| 89 | S TIUD13=$G(^TIU(8925,+DA,13)),TIUD15=$G(^TIU(8925,+DA,15))
|
---|
| 90 | S TIUD21=$G(^TIU(8925,+DA,21))
|
---|
| 91 | S XIDDATA=$$IDDATA(DA,TIUD0,TIUD21)
|
---|
| 92 | S PREFIX=$$PREFIX^TIULA2(DA),PREFIX=FIRSTPFX_PREFIX
|
---|
| 93 | S GETTL=$$GETTL(TIUD0,PREFIX)
|
---|
| 94 | ; Most screens have docmt title in 1st column, but some have pat nm:
|
---|
| 95 | S DOC=$S($D(VALMDDF("PATIENT NAME")):$P(GETTL,U),1:$P(GETTL,U,2)_$P(GETTL,U))
|
---|
| 96 | S TIUFLDS("DOCUMENT TYPE")="DOC"
|
---|
| 97 | S TIUFLDS("TITLE")="DOC"
|
---|
| 98 | S GETPT=$$GETPT(TIUD0,PREFIX)
|
---|
| 99 | S TIULI=$E(GETPT)
|
---|
| 100 | S PT=$P(GETPT,U,2)_$P(GETPT,U)
|
---|
| 101 | S TIUFLDS("PATIENT NAME")="PT"
|
---|
| 102 | S TIULST4=$E($P($G(^DPT(+$P(TIUD0,U,2),0)),U,9),6,9)
|
---|
| 103 | S TIULST4="("_TIULI_TIULST4_")"
|
---|
| 104 | S TIUFLDS("LAST I/LAST 4")="TIULST4"
|
---|
| 105 | S ADT=$$DATE^TIULS($P(TIUD0,U,7),"MM/DD/YY")
|
---|
| 106 | S TIUFLDS("ADMISSION DATE")="ADT"
|
---|
| 107 | S DDT=$$DATE^TIULS($P(TIUD0,U,8),"MM/DD/YY"),LCT=$P(TIUD0,U,10)
|
---|
| 108 | S TIUFLDS("DISCH DATE")="DDT"
|
---|
| 109 | S TIUFLDS("LINE COUNT")="AMD"
|
---|
| 110 | S AMD=$$PERSNAME^TIULC1($P(TIUD12,U,8)) S:AMD="UNKNOWN" AMD=""
|
---|
| 111 | S AUT=$$PERSNAME^TIULC1($P(TIUD12,U,2)) S:AUT="UNKNOWN" AUT=""
|
---|
| 112 | S AMD=$$NAME^TIULS(AMD,"LAST, FI MI")
|
---|
| 113 | S TIUFLDS("ATTENDING")="AMD"
|
---|
| 114 | S TIUFLDS("COSIGNER")="AMD"
|
---|
| 115 | I $D(^TMP("TIUR",$J,"CTXT")) S AUT=$$NAME^TIULS(AUT,"LAST,FI") I 1
|
---|
| 116 | E S AUT=$$NAME^TIULS(AUT,"LAST, FI MI")
|
---|
| 117 | S TIUFLDS("AUTHOR")="AUT"
|
---|
| 118 | I $D(^TMP("TIUR",$J,"CTXT")) S EDT=$$DATE^TIULS($P(TIUD13,U),"MM/DD/YY HR:MIN") I 1
|
---|
| 119 | E S EDT=$$DATE^TIULS($P(TIUD13,U),"MM/DD/YY")
|
---|
| 120 | S TIUFLDS("REF DATE")="EDT"
|
---|
| 121 | S XDT=$$DATE^TIULS($P(TIUD13,U,7),"MM/DD/YY")
|
---|
| 122 | S TIUFLDS("DICT DATE")="XDT"
|
---|
| 123 | S SDT=$S(+$P(TIUD15,U,7):+$P(TIUD15,U,7),+$P(TIUD0,U,5)'<7:+$P(TIUD15,U),1:"")
|
---|
| 124 | S SDT=$$DATE^TIULS(SDT,"MM/DD/YY")
|
---|
| 125 | S TIUFLDS("SIG DATE")="SDT"
|
---|
| 126 | S STATX=$$LOW^XLFSTR($P($G(^TIU(8925.6,+$P(TIUD0,U,5),0)),U))
|
---|
| 127 | S TIUFLDS("STATUS")="STATX"
|
---|
| 128 | S INSTA=""
|
---|
| 129 | I +$P(TIUD12,U,12)>0 D
|
---|
| 130 | . S TIUSTN=$$NS^XUAF4($P(TIUD12,U,12))
|
---|
| 131 | . I $P(TIUSTN,U,2)]"" S INSTA=$P(TIUSTN,U,2)
|
---|
| 132 | S INSTA=$E(INSTA,1,8)
|
---|
| 133 | S TIUFLDS("DIVISION")="INSTA"
|
---|
| 134 | S (TIUI,TIUY)=""
|
---|
| 135 | S TIUY=$$SETFLD^VALM1(TSTART,TIUY,"NUMBER")
|
---|
| 136 | F S TIUI=$O(TIUFLDS(TIUI)) Q:TIUI="" D
|
---|
| 137 | . S:$D(VALMDDF(TIUI)) TIUY=$$SETFLD^VALM1(@TIUFLDS(TIUI),TIUY,TIUI)
|
---|
| 138 | RESOLVEX Q TIUY
|
---|
| 139 | ;
|
---|
| 140 | GETPT(TIUD0,PREFIX) ; Get patient column data; put updated prefix data
|
---|
| 141 | ;in second ^ piece
|
---|
| 142 | ; Receives TIUDO, PREFIX.
|
---|
| 143 | ; Returns (patient col data)^PREFIX
|
---|
| 144 | N TIUY
|
---|
| 145 | S TIUY=$$NAME^TIULS($$PTNAME^TIULC1($P(TIUD0,U,2)),"LAST,FI MI")
|
---|
| 146 | I $D(PREFIX) S TIUY=TIUY_U_PREFIX
|
---|
| 147 | Q TIUY
|
---|
| 148 | ;
|
---|
| 149 | GETTL(TIUD0,PREFIX) ; Get title column data; put updated prefix
|
---|
| 150 | ;data in second ^ piece.
|
---|
| 151 | ; Receives TIUDO, PREFIX.
|
---|
| 152 | ; Returns (title col data)^PREFIX
|
---|
| 153 | N TIUY
|
---|
| 154 | S TIUY=$$PNAME^TIULC1(+TIUD0)
|
---|
| 155 | I TIUY="Addendum" S TIUY="Addendum to "_$$PNAME^TIULC1(+$G(^TIU(8925,+$P(TIUD0,U,6),0)))
|
---|
| 156 | I $D(PREFIX) S TIUY=TIUY_U_PREFIX
|
---|
| 157 | Q TIUY
|
---|
| 158 | ;
|
---|
| 159 | SETTLPT(STRING,DA,PREFIX) ; Set field TITLE or PATIENT into string,
|
---|
| 160 | ;with prefix as first chars of string.
|
---|
| 161 | ; Receives STRING, DA, PREFIX:
|
---|
| 162 | ; PREFIX = beginning chars of title/pt column, up to but not
|
---|
| 163 | ; including title/pt itself.
|
---|
| 164 | ; Returns STRING.
|
---|
| 165 | N PT,DOC,TIUD0
|
---|
| 166 | S TIUD0=^TIU(8925,DA,0)
|
---|
| 167 | I $D(VALMDDF("PATIENT NAME")) D I 1
|
---|
| 168 | . S PT=$$GETPT(TIUD0,PREFIX)
|
---|
| 169 | . S PT=$P(PT,U,2)_$P(PT,U)
|
---|
| 170 | . S STRING=$$SETFLD^VALM1(PT,STRING,"PATIENT NAME")
|
---|
| 171 | E D
|
---|
| 172 | . S DOC=$$GETTL(TIUD0,PREFIX)
|
---|
| 173 | . S DOC=$P(DOC,U,2)_$P(DOC,U)
|
---|
| 174 | . S STRING=$$SETFLD^VALM1(DOC,STRING,"TITLE")
|
---|
| 175 | Q STRING
|
---|