1 | RORAPI01 ;HCIOFO/SG - CLINICAL REGISTRIES API ; 5/12/05 1:59pm
|
---|
2 | ;;1.5;CLINICAL CASE REGISTRIES;;Feb 17, 2006
|
---|
3 | ;
|
---|
4 | ;***** EXAMPLE
|
---|
5 | ;
|
---|
6 | N BUF,IPD,IRD,PATIEN,RC,REGIEN
|
---|
7 | W !," Patient Registries"
|
---|
8 | W !," ------- ----------"
|
---|
9 | ;--- Initialize the patient iterator
|
---|
10 | S RC=$$PATITER^RORAPI01(.IPD,"VA HEPC")
|
---|
11 | I RC<0 W "RC= ",RC,! Q
|
---|
12 | ;--- Browse through the registry patients
|
---|
13 | F S PATIEN=$$NEXTPAT^RORAPI01(.IPD) Q:PATIEN'>0 D
|
---|
14 | . W !,$J(PATIEN,10)," "
|
---|
15 | . ;--- Initialize the registry iterator
|
---|
16 | . S RC=$$REGITER^RORAPI01(.IRD,PATIEN)
|
---|
17 | . I RC<0 W "RC= ",RC Q
|
---|
18 | . ;--- Browse through the patient's registry records
|
---|
19 | . S BUF=""
|
---|
20 | . F S REGIEN=$$NEXTREG^RORAPI01(.IRD) Q:REGIEN'>0 D
|
---|
21 | . . S BUF=BUF_","_REGIEN
|
---|
22 | . W $P(BUF,",",2,999)
|
---|
23 | ;---
|
---|
24 | W !
|
---|
25 | Q
|
---|
26 | ;
|
---|
27 | ;***** RETURNS THE NEXT PATIENT IN THE REGISTRY
|
---|
28 | ;
|
---|
29 | ; .IDESC Reference to the iterator descriptor created
|
---|
30 | ; by PATITER^RORAPI01
|
---|
31 | ;
|
---|
32 | ; Return Values:
|
---|
33 | ; <0 Error code
|
---|
34 | ; "" No more patients in the registry
|
---|
35 | ; >0 Patient IEN^empty
|
---|
36 | ;
|
---|
37 | NEXTPAT(IDESC) ;
|
---|
38 | N RC
|
---|
39 | F D Q:$G(RC)
|
---|
40 | . ;--- Get IEN of the next registry record
|
---|
41 | . S IDESC("IEN")=$O(^RORDATA(798,"AC",IDESC("REGIEN"),IDESC("IEN")))
|
---|
42 | . I IDESC("IEN")'>0 S RC="1^END" Q
|
---|
43 | . Q:'$$ACTIVE^RORDD(IDESC("IEN"))
|
---|
44 | . ;--- Load the patient IEN (DFN)
|
---|
45 | . S RC=$P($G(^RORDATA(798,IDESC("IEN"),0)),U)
|
---|
46 | Q $S(RC="1^END":"",1:RC)
|
---|
47 | ;
|
---|
48 | ;***** RETURNS THE NEXT REGISTRY FOR THE PATIENT
|
---|
49 | ;
|
---|
50 | ; .IDESC Reference to the iterator descriptor created
|
---|
51 | ; by REGITER^RORAPI01
|
---|
52 | ;
|
---|
53 | ; Return Values:
|
---|
54 | ; <0 Error code
|
---|
55 | ; "" No more registries for the patient
|
---|
56 | ; >0 Registry IEN^empty
|
---|
57 | ;
|
---|
58 | NEXTREG(IDESC) ;
|
---|
59 | N RC
|
---|
60 | F D Q:$G(RC)
|
---|
61 | . ;--- Get IEN of the next registry record
|
---|
62 | . S IDESC("IEN")=$O(^RORDATA(798,"B",IDESC("PATIEN"),IDESC("IEN")))
|
---|
63 | . I IDESC("IEN")'>0 S RC="1^END" Q
|
---|
64 | . Q:'$$ACTIVE^RORDD(IDESC("IEN"))
|
---|
65 | . ;--- Load the registry IEN
|
---|
66 | . S RC=$P($G(^RORDATA(798,IDESC("IEN"),0)),U,2)
|
---|
67 | Q $S(RC="1^END":"",1:RC)
|
---|
68 | ;
|
---|
69 | ;***** CREATES AN ITERATOR OF PATIENTS IN THE REGISTRY
|
---|
70 | ;
|
---|
71 | ; .IDESC Reference to a local variable where an iterator
|
---|
72 | ; descriptor will be created
|
---|
73 | ; REGNAME Registry name
|
---|
74 | ; [MODE] Bit flags that define iteration mode (3 by default)
|
---|
75 | ; 1 Active patients
|
---|
76 | ; 2 Reserved
|
---|
77 | ;
|
---|
78 | ; Return Values:
|
---|
79 | ; <0 Error code
|
---|
80 | ; 0 Ok
|
---|
81 | ;
|
---|
82 | PATITER(IDESC,REGNAME,MODE) ;
|
---|
83 | N REGIEN K IDESC
|
---|
84 | ;--- Get an IEN of the Registry Parameters
|
---|
85 | S REGIEN=$$REGIEN^RORUTL02(REGNAME)
|
---|
86 | Q:REGIEN<0 REGIEN
|
---|
87 | ;--- Setup the descriptor
|
---|
88 | S MODE=$S($G(MODE):MODE,1:3)
|
---|
89 | S IDESC("REGNAME")=REGNAME
|
---|
90 | S IDESC("REGIEN")=REGIEN
|
---|
91 | S IDESC("ACT")=MODE#2
|
---|
92 | S IDESC("ROOT")=$$ROOT^DILFD(798,"",1)
|
---|
93 | S IDESC("IEN")=0
|
---|
94 | Q 0
|
---|
95 | ;
|
---|
96 | ;***** CREATES AN ITERATOR OF THE PATIENT REGISTRIES
|
---|
97 | ;
|
---|
98 | ; .IDESC Reference to a local variable where an iterator
|
---|
99 | ; descriptor will be created
|
---|
100 | ; PATIEN Patient IEN
|
---|
101 | ; [MODE] Bit flags that define iteration mode (3 by default)
|
---|
102 | ; 1 Registries where the patient is active
|
---|
103 | ; 2 Reserved
|
---|
104 | ;
|
---|
105 | ; Return Values:
|
---|
106 | ; <0 Error code
|
---|
107 | ; 0 Ok
|
---|
108 | ;
|
---|
109 | REGITER(IDESC,PATIEN,MODE) ;
|
---|
110 | K IDESC
|
---|
111 | ;--- Setup the descriptor
|
---|
112 | S MODE=$S($G(MODE):MODE,1:3)
|
---|
113 | S IDESC("PATIEN")=PATIEN
|
---|
114 | S IDESC("ACT")=MODE#2
|
---|
115 | S IDESC("ROOT")=$$ROOT^DILFD(798,"",1)
|
---|
116 | S IDESC("IEN")=0
|
---|
117 | Q 0
|
---|