1 | YTQAPI2 ;ASF/ALB- MHAX REMOTE PROCEDURES cont ;6/10/03 10:19am ; 4/3/07 11:41am
|
---|
2 | ;;5.01;MENTAL HEALTH;**85**;Dec 30, 1994;Build 48
|
---|
3 | Q
|
---|
4 | LISTER(YSDATA,YS) ;list entries
|
---|
5 | ;input: CODE as test name
|
---|
6 | ;output: Field^Value
|
---|
7 | N YSFIELD,YSFILEN,N,C,YSNUMBER,YSFLAG,YSFROM,YSINDEX
|
---|
8 | S YSFILEN=$G(YS("FILEN"),0) S X=$$VFILE^DILFD(YSFILEN) I X=0 S YSDATA(1)="[ERROR]",YSDATA(2)="BAD FILE N" Q ;--->out
|
---|
9 | S YSFIELD=$G(YS("FIELD"),0) S X=$$VFIELD^DILFD(YSFILEN,YSFIELD) I X=0 S YSDATA(1)="[ERROR]",YSDATA(2)="BAD FIELD N" Q ;--->out
|
---|
10 | S YSFLAG=$G(YS("FLAG"))
|
---|
11 | S YSNUMBER=$G(YS("NUMBER"),500)
|
---|
12 | S YSFROM("IEN")=$G(YS("FROM"))
|
---|
13 | S YSINDEX=$G(YS("INDEX"))
|
---|
14 | D LIST^DIC(YSFILEN,,YSFIELD,YSFLAG,YSNUMBER,.YSFROM,,YSINDEX)
|
---|
15 | I $D(^TMP("DIERR",$J)) S YSDATA(1)="[ERROR]",YSDATA(2)=$G(^TMP("DIERR",$J,1,"TEXT",1)) Q ;--> out
|
---|
16 | S YSDATA(1)="[DATA]"
|
---|
17 | S YSDATA(2)=^TMP("DILIST",$J,0)
|
---|
18 | S C=2,N=0
|
---|
19 | F S N=$O(^TMP("DILIST",$J,2,N)) Q:N'>0 D
|
---|
20 | . S C=C+1
|
---|
21 | . S YSDATA(C)=^TMP("DILIST",$J,2,N)_U_$G(^TMP("DILIST",$J,"ID",N,YSFIELD))
|
---|
22 | K ^TMP("DILIST",$J)
|
---|
23 | Q
|
---|
24 | ALLANS(YSDATA,YS) ;get all answers
|
---|
25 | ;input:AD = ADMINISTRATION #
|
---|
26 | ;output: [DATA]
|
---|
27 | ; ADMIN ID^DFN^INSTRUMENT^DATE GIVEN^IS COMPLETE
|
---|
28 | ;QUESTION #^seq^ANSWER
|
---|
29 | N G,G1,N,YSAD,YSQN
|
---|
30 | S YSAD=$G(YS("AD"))
|
---|
31 | I YSAD'?1N.N S YSDATA(1)="[ERROR]",YSDATA(2)="bad ad num" Q ;-->out
|
---|
32 | I '$D(^YTT(601.85,"AC",YSAD)) S YSDATA(1)="[ERROR]",YSDATA(2)="no such reference" Q ;-->out
|
---|
33 | S YSDATA(1)="[DATA]"
|
---|
34 | S YSDATA(2)=YSAD_U_$$GET1^DIQ(601.84,YSAD_",",1,"I")_U_$$GET1^DIQ(601.84,YSAD_",",2,"E")_U_$$GET1^DIQ(601.84,YSAD_",",3,"I")_U_$$GET1^DIQ(601.84,YSAD_",",8,"I")
|
---|
35 | S YSQN=0,N=2
|
---|
36 | F S YSQN=$O(^YTT(601.85,"AC",YSAD,YSQN)) Q:YSQN'>0 S G=0 D
|
---|
37 | . S G=$O(^YTT(601.85,"AC",YSAD,YSQN,G)) Q:G'>0 S G1=0 D
|
---|
38 | .. S:$P(^YTT(601.85,G,0),U,4)?1N.N N=N+1,YSDATA(N)=YSQN_"^1^"_$P(^YTT(601.85,G,0),U,4)
|
---|
39 | .. F S G1=$O(^YTT(601.85,G,1,G1)) Q:G1'>0 S N=N+1,YSDATA(N)=YSQN_U_G1_U_$G(^YTT(601.85,G,1,G1,0))
|
---|
40 | Q
|
---|
41 | SETANS(YSDATA,YS) ;save an answer
|
---|
42 | ;input: AD = ADMINISTRATION #
|
---|
43 | ;input: QN= QUESTION #
|
---|
44 | ;input: CHOICE= Choice ID [optional]
|
---|
45 | ;input: YS(1) thru YS(N) WP entries
|
---|
46 | ;output: [DATA] vs [ERROR]
|
---|
47 | N G,G1,N,N1,YSIENS,YSAD,YSQN,YSCI,YSCODE,YSOP
|
---|
48 | S YSDATA(1)="[ERROR]"
|
---|
49 | S YSAD=$G(YS("AD"))
|
---|
50 | S YSQN=$G(YS("QN"))
|
---|
51 | S YSCI=$G(YS("CHOICE"))
|
---|
52 | I YSAD'?1N.N S YSDATA(2)="bad ad num" Q ;-->out
|
---|
53 | I YSQN'?1N.N S YSDATA(2)="bad quest num" Q ;-->out
|
---|
54 | I $D(^YTT(601.85,"AC",YSAD,YSQN)) S YSIENS=$O(^YTT(601.85,"AC",YSAD,YSQN,0))
|
---|
55 | I '$D(^YTT(601.85,"AC",YSAD,YSQN)) D ; set new entry
|
---|
56 | . S YSIENS=""
|
---|
57 | . S YSIENS=$$NEW^YTQLIB(601.85)
|
---|
58 | . Q:YSIENS'?1N.N
|
---|
59 | . L +^YTT(601.85,YSIENS)
|
---|
60 | . S ^YTT(601.85,YSIENS,0)=YSIENS_U_YSAD_U_YSQN
|
---|
61 | . L -^YTT(601.85,YSIENS)
|
---|
62 | . S ^YTT(601.85,0)="MH ANSWERS^601.85^"_YSIENS_U_($P(^YTT(601.85,0),U,4)+1)
|
---|
63 | . S ^YTT(601.85,"B",YSIENS,YSIENS)=""
|
---|
64 | . S ^YTT(601.85,"AC",YSAD,YSQN,YSIENS)=""
|
---|
65 | . S ^YTT(601.85,"AD",YSAD,YSIENS)=""
|
---|
66 | ;enter or delete Answers
|
---|
67 | S $P(^YTT(601.85,YSIENS,0),U,4)=YSCI
|
---|
68 | K ^YTT(601.85,YSIENS,1)
|
---|
69 | S N=0,N1=0
|
---|
70 | F S N=$O(YS(N)) Q:N'>0 S N1=N1+1,^YTT(601.85,YSIENS,1,N1,0)=YS(N)
|
---|
71 | S:N1 ^YTT(601.85,YSIENS,1,0)=U_U_N1_U_N1_U_DT_U
|
---|
72 | S YSDATA(1)="[DATA]",YSDATA(2)="OK"
|
---|
73 | ;set has been operational
|
---|
74 | S YSCODE=$P(^YTT(601.84,YSAD,0),U,3)
|
---|
75 | S YSOP=$P($G(^YTT(601.71,YSCODE,2)),U,2)
|
---|
76 | S:YSOP="Y" $P(^YTT(601.71,YSCODE,2),U,5)="Y"
|
---|
77 | Q
|
---|
78 | ADMINS(YSDATA,YS) ;administration retrevial
|
---|
79 | ;input : DFN
|
---|
80 | ;output:AdministrationID=InstrumentName^DateGiven^DateSaved^OrderedBy^AdministeredBy^Signed^IsComplete^NumberOfQuestionsAnswered
|
---|
81 | N N,G,DFN,YSIENS
|
---|
82 | S DFN=$G(YS("DFN"))
|
---|
83 | I DFN'?1N.N S YSDATA(1)="[ERROR]",YSDATA(2)="bad DFN" Q ;-->out
|
---|
84 | I '$D(^DPT(DFN,0)) S YSDATA(1)="[ERROR]",YSDATA(2)="nO pt" Q ;-->out
|
---|
85 | S YSIENS=0,N=2
|
---|
86 | S YSDATA(1)="[DATA]"
|
---|
87 | F S YSIENS=$O(^YTT(601.84,"C",DFN,YSIENS)) Q:YSIENS'>0 D
|
---|
88 | . S N=N+1
|
---|
89 | . S G=$G(^YTT(601.84,YSIENS,0))
|
---|
90 | . I G="" S YSDATA(1)="[ERROR]",YSDATA(2)=YSIENS_" bad ien in 84" Q ;-->out
|
---|
91 | . S YSDATA(N)=YSIENS_"="_$$GET1^DIQ(601.84,YSIENS_",",2)_U_$P(G,U,4)_U_$P(G,U,5)
|
---|
92 | . S YSDATA(N)=YSDATA(N)_U_$$GET1^DIQ(601.84,YSIENS_",",5,"I")_U_$$GET1^DIQ(601.84,YSIENS_",",6,"I")
|
---|
93 | . S YSDATA(N)=YSDATA(N)_U_$$GET1^DIQ(601.84,YSIENS_",",7)_U_$$GET1^DIQ(601.84,YSIENS_",",8)_U_$$GET1^DIQ(601.84,YSIENS_",",9)
|
---|
94 | S:YSDATA(1)="[DATA]" YSDATA(2)=(N-2)_" administrations"
|
---|
95 | Q
|
---|
96 | CCALL(YSDATA) ;
|
---|
97 | ;all choices returned
|
---|
98 | ;output: 601.75(1) CHOICETYPE ID^SEQUENCE^CHOICE IFN^CHOICE TEXT
|
---|
99 | N YSTESTN,YSTEST,YSF,YSV,N,G,YSCTYP,YSCTYPID,G,G1,X,YSCDA,YSN,YSN1
|
---|
100 | S YSN=0,N=1
|
---|
101 | S YSDATA(1)="[DATA]"
|
---|
102 | F S YSN=$O(^YTT(601.751,YSN)) Q:YSN'>0 D
|
---|
103 | . S YSN1=0 F S YSN1=$O(^YTT(601.751,"AC",YSN,YSN1)) Q:YSN1'>0 D
|
---|
104 | .. S YSCDA=0 F S YSCDA=$O(^YTT(601.751,"AC",YSN,YSN1,YSCDA)) Q:YSCDA'>0 D
|
---|
105 | ... S N=N+1
|
---|
106 | ... S YSDATA(N)=YSN_U_YSN1_U_YSCDA_U_$G(^YTT(601.75,YSCDA,1))
|
---|
107 | Q
|
---|