1 | TMGRPCS1 ;TMG/kst/RPC entry points for Search PT DOCS API ; 6/20/10
|
---|
2 | ;;1.0;TMG-LIB;**1**;05/20/10
|
---|
3 | ;
|
---|
4 | ;"RPC ENTRY POINTS FOR TMG PATIENT DOCUMENTS SEARCH
|
---|
5 | ;
|
---|
6 | ;"Copyright Kevin Toppenberg MD 6/20/10
|
---|
7 | ;"Released under GNU General Public License (GPL)
|
---|
8 | ;"
|
---|
9 | ;"=======================================================================
|
---|
10 | ;" RPC -- Public Functions.
|
---|
11 | ;"=======================================================================
|
---|
12 | ;"PDSRCH(TMGRESULT,TMGPARAMS) -- launch a background search in documents for 1 patient
|
---|
13 | ;"PDSTATUS(TMGRESULT,TMGPARAMS) -- Get status of background search
|
---|
14 | ;"PDRESULT(TMGRESULT,TMGPARAMS) -- Get result from background search
|
---|
15 | ;"PDCLEAR(TMGRESULT,TMGPARAMS) -- Tell background task to stop, and clear data array
|
---|
16 | ;"PDSTOP(TMGRESULT,TMGPARAMS) -- Tell background task to stop searching
|
---|
17 | ;"PDPREPSS^TMGRPCS1(TMGRESULT,TMGPARAMS) -- Prep for Subset of List for TORCombobox
|
---|
18 | ;"PDGETSS^TMGRPCS1(TMGRESULT,TMGPARAMS) -- Get a subset of list for TORCombobox
|
---|
19 |
|
---|
20 | ;"=======================================================================
|
---|
21 | ;"PRIVATE API FUNCTIONS
|
---|
22 | ;"=======================================================================
|
---|
23 | ;"
|
---|
24 | ;"=======================================================================
|
---|
25 | ;"=======================================================================
|
---|
26 | ;"Dependencies: TMGSRCH2
|
---|
27 | ;"=======================================================================
|
---|
28 | ;"=======================================================================
|
---|
29 | ;
|
---|
30 | PDSRCH(TMGRESULT,TMGPARAMS) ;
|
---|
31 | ;"Purpose: Handle PT DOCS SEARCH -- launch a background search in documents for 1 patient
|
---|
32 | ;"Input: TMGRESULT -- PASS BY REFERENCE. AN OUT PARAMETER
|
---|
33 | ;" TMGPARAMS -- Input: PatientEIN^SearchString
|
---|
34 | ;" Search string notes:
|
---|
35 | ;" Each word (or partial word) to look up is separated by spaces
|
---|
36 | ;" All words are combined in AND fashion
|
---|
37 | ;" Search is NOT case sensitive.
|
---|
38 | ;" Exact pharases can be specified by quotes.
|
---|
39 | ;" Example: 'dog cat monkey "in a barrel"
|
---|
40 | ;"Note: this function can ALSO be used to allow the CHANGE the search.
|
---|
41 | ;" This will allow the search to begin while the user is still
|
---|
42 | ;" entering the search terms. If the new search is just an
|
---|
43 | ;" extension to the prior search, then the prior search will be
|
---|
44 | ;" added on rather than starting over.
|
---|
45 | ;
|
---|
46 | ;"Results: TMGRESULT(0)="1^Success", OR -1^ErrorMsg
|
---|
47 | NEW DFN SET DFN=+$PIECE(TMGPARAMS,"^",1)
|
---|
48 | IF DFN'>0 DO GOTO PDSDN
|
---|
49 | . SET TMGRESULT(0)="-1^Invalid Patient IEN"
|
---|
50 | NEW TMGSRCH SET TMGSRCH=$PIECE(TMGPARAMS,"^",2)
|
---|
51 | IF TMGSRCH="" DO GOTO PDSDN
|
---|
52 | . SET TMGRESULT(0)="-1^No search terms provided."
|
---|
53 | DO LAUNCHSR^TMGSRCH2(DFN,TMGSRCH) ;
|
---|
54 | SET TMGRESULT(0)="1^SUCCESS"
|
---|
55 | PDSDN QUIT
|
---|
56 | ;
|
---|
57 | PDSTATUS(TMGRESULT,TMGPARAMS) ;
|
---|
58 | ;"Purpose: Handle PT DOCS STATUS -- Get status of background search
|
---|
59 | ;"Input: TMGRESULT -- PASS BY REFERENCE. AN OUT PARAMETER
|
---|
60 | ;" TMGPARAMS -- Input: NOT USED
|
---|
61 | ;"Results: TMGRESULT(0)=1^Status or -1^ErrorMessage
|
---|
62 | SET TMGRESULT(0)=$$STATUS^TMGSRCH2() ;
|
---|
63 | QUIT
|
---|
64 | ;
|
---|
65 | PDRESULT(TMGRESULT,TMGPARAMS) ;
|
---|
66 | ;"Purpose: Handle PT DOCS GET RESULTS -- get result from background search
|
---|
67 | ;"Input: TMGRESULT -- PASS BY REFERENCE. AN OUT PARAMETER
|
---|
68 | ;" TMGPARAMS -- Input: NOT USED
|
---|
69 | ;"Results: TMGRESULT(0)=FoundCount^Success, or -1^Message
|
---|
70 | ;" TMGRESULT(1)=IEN1
|
---|
71 | ;" TMGRESULT(2)=IEN2 ... etc.
|
---|
72 | DO RESULTS^TMGSRCH2(.TMGRESULT)
|
---|
73 | QUIT
|
---|
74 | ;
|
---|
75 | PDCLEAR(TMGRESULT,TMGPARAMS) ;
|
---|
76 | ;"Purpose: PT DOCS CLEAR -- Tell background task to stop, and clear data array
|
---|
77 | ;"Input: TMGRESULT -- PASS BY REFERENCE. AN OUT PARAMETER
|
---|
78 | ;" TMGPARAMS -- Input: NOT USED
|
---|
79 | ;"Results: TMGRESULT(0)="1^Success
|
---|
80 | DO CLEAR^TMGSRCH2
|
---|
81 | SET TMGRESULT(0)="1^Success"
|
---|
82 | QUIT
|
---|
83 | ;
|
---|
84 | PDSTOP(TMGRESULT,TMGPARAMS) ;
|
---|
85 | ;"Purpose: Handle PT DOCS STOP -- Tell background task to stop searching
|
---|
86 | ;"Input: TMGRESULT -- PASS BY REFERENCE. AN OUT PARAMETER
|
---|
87 | ;" TMGPARAMS -- Input: NOT USED
|
---|
88 | ;"Results: TMGRESULT(0)=
|
---|
89 | ;"Results: TMGRESULT(0)="1^Success
|
---|
90 | DO STOP^TMGSRCH2
|
---|
91 | SET TMGRESULT(0)="1^Success"
|
---|
92 | QUIT
|
---|
93 | ;
|
---|
94 | PDPREPSS(TMGRESULT,TMGPARAMS) ;
|
---|
95 | ;"Purpose -- Prep for Subset of List for TORCombobox
|
---|
96 | ;"Input: TMGRESULT -- PASS BY REFERENCE. AN OUT PARAMETER
|
---|
97 | ;" TMGPARAMS -- Input: NOT USED
|
---|
98 | ;"Results: TMGRESULT(0)="1^Success", OR -1^ErrorMsg
|
---|
99 | NEW LIST
|
---|
100 | NEW ABORT SET ABORT=0
|
---|
101 | DO PDRESULT(.LIST) ;
|
---|
102 | NEW REF SET REF=$NAME(^TMG("TMP","SEARCH","SRCHTIU",$J,"OR LIST"))
|
---|
103 | KILL @REF
|
---|
104 | IF +$GET(LIST(0))'>0 SET TMGRESULT(0)=LIST(0) GOTO PSSDN
|
---|
105 | NEW I SET I=0
|
---|
106 | FOR SET I=$ORDER(LIST(I)) QUIT:(+I'>0)!ABORT DO
|
---|
107 | . NEW IEN SET IEN=+$GET(LIST(I)) QUIT:IEN'>0
|
---|
108 | . NEW NAME SET NAME=$$FORMAT(IEN)
|
---|
109 | . IF +NAME=-1 SET ABORT=1,TMGRESULT(0)=NAME QUIT
|
---|
110 | . SET @REF@(NAME,IEN)=""
|
---|
111 | PSSDN QUIT
|
---|
112 | ;
|
---|
113 | ;
|
---|
114 | FORMAT(IEN) ;
|
---|
115 | ;"Purpose: Return a string describing note title
|
---|
116 | ;"Input: IEN -- The IEN in file 8925
|
---|
117 | ;"Result: July 15, 2010 -- NOTE TITLE -- AUTHOR
|
---|
118 | SET IEN=+$GET(IEN)
|
---|
119 | NEW RESULT
|
---|
120 | IF (IEN'>0)!($DATA(^TIU(8925,IEN))=0) DO GOTO FMTDN
|
---|
121 | . SET RESULT="-1^<Note "_IEN_" Doesn't Exist>"
|
---|
122 | NEW TMGOUT,TMGMSG,TMGIENS
|
---|
123 | SET TMGIENS=IEN_","
|
---|
124 | DO GETS^DIQ(8925,TMGIENS,".01;1202","","TMGOUT","TMGMSG")
|
---|
125 | IF $DATA(TMGMSG("DIERR")) DO GOTO FMTDN
|
---|
126 | . SET RESULT="-1^<Error getting information for record "_IEN_">"
|
---|
127 | NEW TITLE SET TITLE=$GET(TMGOUT(8925,TMGIENS,.01),"? TITLE")
|
---|
128 | NEW AUTHOR SET AUTHOR=$GET(TMGOUT(8925,TMGIENS,1202),"? AUTHOR")
|
---|
129 | NEW DATE SET DATE=$PIECE($GET(^TIU(8925,IEN,0)),"^",7) ;"Custom formatting
|
---|
130 | SET DATE=$$FMTE^XLFDT(DATE,7) ;"7 --> YYYY/MM/DD@time
|
---|
131 | SET DATE=$PIECE(DATE,"@",1) ;"remove time
|
---|
132 | NEW MONTH SET MONTH=$PIECE(DATE,"/",2)
|
---|
133 | IF $LENGTH(MONTH)=1 SET MONTH="0"_MONTH SET $PIECE(DATE,"/",2)=MONTH
|
---|
134 | NEW DAY SET DAY=$PIECE(DATE,"/",3)
|
---|
135 | IF $LENGTH(DAY)=1 SET DAY="0"_DAY SET $PIECE(DATE,"/",3)=DAY
|
---|
136 | SET RESULT=DATE_"; "_TITLE_" - "_AUTHOR
|
---|
137 | FMTDN QUIT RESULT
|
---|
138 | ;
|
---|
139 | PDGETSS(TMGRESULT,TMGPARAMS) ;
|
---|
140 | ;"Purpose -- Get a subset of list for TORCombobox
|
---|
141 | ;" NOTE: This should only be called after a successful call to
|
---|
142 | ;" PDPREPSS^TMGRPCS1 which will prepair the list.
|
---|
143 | ;"Input: TMGRESULT -- PASS BY REFERENCE. AN OUT PARAMETER
|
---|
144 | ;" TMGPARAMS -- Input: StartFrom^Direction^MaxCount
|
---|
145 | ;" StartFrom -- OPTIONAL -- text to $ORDER() from
|
---|
146 | ;" Direction -- $ORDER(xx,Direction) direction (should be 1 or -1) -- OPTIONAL
|
---|
147 | ;" MaxCount -- OPTIONAL. Default is 44 values returned.
|
---|
148 | ;"Results: TMGRESULT(0)="1^Success" or "-1^Message"
|
---|
149 | ;" TMGRESULT(1)=IEN^2010/6/10; OFFICE NOTE - TOPPENBERG,KEVIN <-- Example
|
---|
150 | ;" TMGRESULT(2)=IEN^A_Note_Identifier
|
---|
151 | ;
|
---|
152 | NEW TMGFROM SET TMGFROM=$PIECE(TMGPARAMS,"^",1)
|
---|
153 | NEW TMGDIR SET TMGDIR=$PIECE(TMGPARAMS,"^",2)
|
---|
154 | IF TMGDIR'=-1 SET TMGDIR=1
|
---|
155 | NEW TMGMAXCT SET TMGMAXCT=+$PIECE(TMGPARAMS,"^",3)
|
---|
156 | IF TMGMAXCT=0 SET TMGMAXCT=44
|
---|
157 | ;
|
---|
158 | NEW TMGREF SET TMGREF=$NAME(^TMG("TMP","SEARCH","SRCHTIU",$J,"OR LIST"))
|
---|
159 | NEW TMGI SET TMGI=0
|
---|
160 | FOR SET TMGFROM=$ORDER(@TMGREF@(TMGFROM),TMGDIR) QUIT:(TMGFROM="")!(TMGI'<TMGMAXCT) DO
|
---|
161 | . NEW TMGIEN SET TMGIEN=""
|
---|
162 | . FOR SET TMGIEN=$ORDER(@TMGREF@(TMGFROM,TMGIEN),TMGDIR) QUIT:(+TMGIEN'>0)!(TMGI'<TMGMAXCT) DO
|
---|
163 | . . SET TMGI=TMGI+1
|
---|
164 | . . SET TMGRESULT(TMGI)=TMGIEN_"^"_TMGFROM
|
---|
165 | ;
|
---|
166 | IF $DATA(TMGRESULT)=0 SET TMGRESULT(0)="-1^NO RESULTS"
|
---|
167 | ELSE SET TMGRESULT(0)="1^Success"
|
---|
168 | QUIT
|
---|
169 | ;
|
---|
170 |
|
---|
171 |
|
---|