1 | TIUSRVR ; SLC/JER - Server fns for record manipulation ; 01/22/2002 16:18
|
---|
2 | ;;1.0;TEXT INTEGRATION UTILITIES;**19,28,69,89,122,109,112,186**;Jun 20, 1997
|
---|
3 | SGET(TIUY,DA) ; Get fixed fields for record TIUDA
|
---|
4 | N DOC,LOC,PT,AUT,EDT,DTFMT,TIUPT,TIULST4,TIUREC,TIUR0,TIUR12,TIUR13
|
---|
5 | N SUBJ,TIUCNT
|
---|
6 | S TIUR0=$G(^TIU(8925,+DA,0)),TIUR12=$G(^TIU(8925,+DA,12))
|
---|
7 | S TIUR13=$G(^TIU(8925,+DA,13)),TIUPT=$G(^DPT(+$P(TIUR0,U,2),0))
|
---|
8 | S SUBJ=$G(^TIU(8925,+DA,17))
|
---|
9 | S DOC=$$PNAME^TIULC1(+TIUR0)
|
---|
10 | S LOC=$P($G(^SC(+$P(TIUR12,U,5),0)),U)
|
---|
11 | S PT=$$NAME^TIULS($P(TIUPT,U),"LAST, FIRST MI")
|
---|
12 | S TIULST4=$E($P(TIUPT,U,9),6,9)
|
---|
13 | S TIULST4="("_$E(PT)_TIULST4_")"
|
---|
14 | S AUT=$$SIGNAME^TIULS(+$P(TIUR12,U,2))
|
---|
15 | S DTFMT=$S($L(+TIUR13,".")=2:"MM/DD/YY HR:MIN",1:"MM/DD/YY")
|
---|
16 | S EDT=$$DATE^TIULS(+TIUR13,DTFMT)
|
---|
17 | S TIUCNT=+$G(TIUCNT)+1
|
---|
18 | S TIUY=DOC_U_EDT_U_PT_" "_TIULST4_U_AUT_U_LOC_U_SUBJ
|
---|
19 | Q
|
---|
20 | TGET(TIUY,TIUDA,TIUJ,TIUDAD) ; Get each component
|
---|
21 | N TIUKID,TIUDADT,TIUI,TIUSEE S TIUI=0
|
---|
22 | S TIUSEE=$$CANDO^TIULP(TIUDA,"VIEW")
|
---|
23 | I '+TIUSEE D Q
|
---|
24 | . S TIUY(1)=" "
|
---|
25 | . S TIUY(2)=$P(TIUSEE,"^ ",2),(TIUI,TIUJ)=2
|
---|
26 | F S TIUI=$O(^TIU(8925,+TIUDA,"TEXT",TIUI)) Q:+TIUI'>0 D
|
---|
27 | . S TIUJ=+$G(TIUJ)+1
|
---|
28 | . S TIUY(TIUJ)=$G(^TIU(8925,+TIUDA,"TEXT",TIUI,0))
|
---|
29 | . ;S ^TMP("TIUTEXT",$J,TIUJ,0)=$G(^TIU(8925,+TIUDA,"TEXT",TIUI,0))
|
---|
30 | ; Iterate through children, and get their text fields
|
---|
31 | S TIUKID=0
|
---|
32 | F S TIUKID=$O(^TIU(8925,"DAD",+TIUDA,TIUKID)) Q:+TIUKID'>0 D
|
---|
33 | . D TGET(.TIUY,TIUKID,.TIUJ,$G(TIUDAD,TIUDA))
|
---|
34 | ;I $D(^TMP("TIUTEXT",$J)) S TIUY="^TMP(""TIUTEXT"",$J)"
|
---|
35 | Q
|
---|
36 | GET4EDIT(TIUY,TIUDA,DR) ; Get data in preparation for editing a record
|
---|
37 | N CANEDIT,ERR,D0,DIQ2,TIUARR,TIUF,TIUI
|
---|
38 | I +$D(^TIU(8925,TIUDA,"TEMP")),'+$$IFTEXT() D MERGTEXT(TIUDA)
|
---|
39 | K ^TMP("TIUEDIT",$J),^TMP("TIULQ",$J)
|
---|
40 | S TIUY=$NA(^TMP("TIUEDIT",$J)),TIUARR=$NA(^TMP("TIULQ",$J))
|
---|
41 | S CANEDIT=$$CANDO^TIULP(TIUDA,"EDIT RECORD")
|
---|
42 | I +CANEDIT'>0 S ^TMP("TIUEDIT",$J,0)="~"_$P(CANEDIT,U,2) Q
|
---|
43 | D EXTRACT^TIULQ(TIUDA,TIUARR,.ERR,$G(DR),"",1,"IE",1)
|
---|
44 | I $D(ERR) M TIUY=ERR Q
|
---|
45 | S TIUF=0
|
---|
46 | F S TIUF=$O(@TIUARR@(TIUDA,TIUF)) Q:+TIUF'>0 D
|
---|
47 | . S ^TMP("TIUEDIT",$J,TIUF)=TIUF_U_@TIUARR@(TIUDA,TIUF,"I")_U_@TIUARR@(TIUDA,TIUF,"E")
|
---|
48 | S TIUI=0
|
---|
49 | F S TIUI=$O(@TIUARR@(TIUDA,"TEXT",TIUI)) Q:+TIUI'>0 D
|
---|
50 | . S ^TMP("TIUEDIT",$J,"TEXT",TIUI)=$G(@TIUARR@(TIUDA,"TEXT",TIUI,0))
|
---|
51 | S ^TMP("TIUEDIT",$J,"TEXT",0)="$TXT",^TIU(8925,"ASAVE",DUZ,TIUDA)=""
|
---|
52 | K @TIUARR
|
---|
53 | Q
|
---|
54 | IFTEXT() ;
|
---|
55 | N TIUCHK
|
---|
56 | S TIUCHK=0 F S TIUCHK=$O(^TIU(8925,TIUDA,"TEXT",TIUCHK)) Q:TIUCHK=""!TIUCHK>0
|
---|
57 | Q TIUCHK
|
---|
58 | GETPREF(TIUY,USER) ; Get user's personal preferences
|
---|
59 | ; Call with TIUY (by ref)
|
---|
60 | ; USER is pointer to file 200
|
---|
61 | ; Returns TIUY = USER ^ DEFAULT LOCATION ^ REVIEW SCREEN SORT FIELD ^
|
---|
62 | ; ==>REVIEW SCREEN SORT ORDER ^ DISPLAY MENUS ^ PATIENT
|
---|
63 | ; ==>SELECTION PREFERENCE ^ ASK 'Save changes?' AFTER
|
---|
64 | ; ==>EDIT ^ ASK SUBJECT FOR PROGRESS NOTES ^
|
---|
65 | S TIUY=$$PERSPRF^TIULE(USER)
|
---|
66 | Q
|
---|
67 | GETALRT(TIUY,XQAID) ; Retrieve DFN and document type for a TIU alert
|
---|
68 | N X,TIUDA,TIUDFN,ORTAB,TIUDAD,GMRCO
|
---|
69 | S TIUDA=$TR($P(XQAID,";",1),"ABCDEFGHIJKLMNOPQRSTUVWXYZ") ; Strip Text
|
---|
70 | I '+TIUDA!('$D(^TIU(8925,+TIUDA,0))) S TIUY="-1" Q
|
---|
71 | S X=$P($G(^TIU(8925,TIUDA,0)),U)
|
---|
72 | S TIUDFN=$P(^TIU(8925,TIUDA,0),U,2)
|
---|
73 | I $P(^TIU(8925,TIUDA,0),U,6)'="" D
|
---|
74 | . S TIUDAD=$P(^TIU(8925,TIUDA,0),U,6)
|
---|
75 | . S X=$P($G(^TIU(8925,TIUDAD,0)),U)
|
---|
76 | I ('+X)!('+TIUDFN) S TIUY="-1" Q
|
---|
77 | S ORTAB=903 ;DEFAULT TO PN
|
---|
78 | I +$$ISDS^TIULX(X) S ORTAB=901
|
---|
79 | I +$$ISA^TIULX(X,$$CLASS^TIUSROI("SURGICAL REPORTS")) S ORTAB=904
|
---|
80 | I +$$ISA^TIULX(X,$$CLASS^TIUCNSLT)!(+$$ISA^TIULX(X,+$$CLASS^TIUCP)) D
|
---|
81 | . S GMRCO=$P(^TIU(8925,$S(+$G(TIUDAD):TIUDAD,1:TIUDA),14),U,5)
|
---|
82 | . S ORTAB=902_";"_GMRCO
|
---|
83 | S TIUY=TIUDA_U_TIUDFN_U_ORTAB
|
---|
84 | Q
|
---|
85 | GET1405(TIUY,TIUDA) ; Get the Request (field #1405) for a document
|
---|
86 | N TIUDAD,TIUTYP,TIU1405
|
---|
87 | I '+TIUDA!('$D(^TIU(8925,+TIUDA,0))) S TIUY="-1^TIU Document does not exist" Q
|
---|
88 | S TIUTYP=$P($G(^TIU(8925,TIUDA,0)),U)
|
---|
89 | I $P(^TIU(8925,TIUDA,0),U,6)'="" D
|
---|
90 | . S TIUDAD=$P(^TIU(8925,TIUDA,0),U,6)
|
---|
91 | . S TIUTYP=$P($G(^TIU(8925,TIUDAD,0)),U)
|
---|
92 | I '+TIUTYP S TIUY="-1^TIU parent document does not exist" Q
|
---|
93 | S TIU1405=$P($G(^TIU(8925,$S(+$G(TIUDAD):TIUDAD,1:TIUDA),14)),U,5)
|
---|
94 | I '+TIU1405 S TIUY="-1^No Request found for this document" Q
|
---|
95 | S TIUY=TIU1405
|
---|
96 | Q
|
---|
97 | MERGTEXT(TIUDA) ; Merge text from "TEMP"-node to "TEXT"-node
|
---|
98 | N TIU
|
---|
99 | D CLEANTXT(TIUDA)
|
---|
100 | D GETTIU^TIULD(.TIU,TIUDA)
|
---|
101 | D MERGTEXT^TIUEDI1(TIUDA,.TIU)
|
---|
102 | K ^TIU(8925,TIUDA,"TEMP")
|
---|
103 | Q
|
---|
104 | CLEANTXT(TIUDA) ; Remove "TEXT"-nodes of document and components
|
---|
105 | N TIUI S TIUI=0
|
---|
106 | K ^TIU(8925,TIUDA,"TEXT")
|
---|
107 | F S TIUI=$O(^TIU(8925,"DAD",TIUDA,TIUI)) Q:+TIUI'>0 D
|
---|
108 | . I +$$ISADDNDM^TIULC1(TIUI) Q
|
---|
109 | . K ^TIU(8925,TIUI,"TEXT")
|
---|
110 | Q
|
---|