source: WorldVistAEHR/trunk/r/AUTOMATED_INFO_COLLECTION_SYS-IBD/IBDFQSL2.m@ 1520

Last change on this file since 1520 was 613, checked in by George Lilly, 15 years ago

initial load of WorldVistAEHR

File size: 2.6 KB
RevLine 
[613]1IBDFQSL2 ;ALB/CJM/AAS/MAF - ENCOUNTER FORM - Quick selection edit (cont.);12-Jun-95
2 ;;3.0;AUTOMATED INFO COLLECTION SYS;**34**;APR 24, 1997
3 ;
4GETLST(FORM,BLOCK,LIST,INTRFACE,ARY,FILTER,COUNT) ; -- returns any specified selection list for a clinic
5 ; -- input FORM = ien of entry in 357
6 ; BLOCK = ien of entry in 357.1
7 ; LIST = ien of entry in 357.2
8 ; INTRFACE = name of selection list in package interface file
9 ; ARY = name of array to return list in
10 ; FILTER = predefined filters (optional, default = 1)
11 ; 1 = must be selection list
12 ; 2 = only visit cpts on list
13 ;
14 ; -- output The format of the returned array is as follows
15 ; @ARY@(0) = count of array element (0 of nothing found)
16 ; @ARY@(1) = ^group header
17 ; @ARY@(2) = problem ien or cpt or icd code^user defined text
18 ; @ARY@(3) = problem ien or cpt or icd code^used defined text
19 ; @ARY@(k) = ^next group header
20 ; @ARY@(k+1) = problem ien or cpt or icd code^user define text
21 ;
22 Q:'FORM!('BLOCK)!('LIST)!('INTRFACE)
23 N OLDARY,IBDTMP
24 S COUNT=$G(COUNT,0)
25 I $G(FILTER)<1 S FILTER=1 ;default value=1
26 I FILTER>1 S OLDARY=ARY,ARY="IBDTMP"
27 S @ARY@(0)=+$G(@ARY@(0))
28 D COPYLIST(LIST,ARY,.COUNT)
29 S @ARY@(0)=COUNT
30 I FILTER=2 D F2^IBDF18A1(OLDARY)
31 Q
32 ;
33COPYLIST(LIST,ARY,COUNT) ;copies the entries from LIST to @ARY, starting subscript at COUNT+1
34 ;
35 N SLCTN,SUBCOL,TEXT,IEN,NODE,TSUBCOL,NODE,GROUP,ORDER,HDR,GRPORDR
36 ;
37 D SUBCOL^IBDF18A1(LIST,.TSUBCOL) ;find the subcolumn containing the text
38 ;
39 S GRPORDR=""
40 F S GRPORDR=$O(^IBE(357.4,"APO",LIST,GRPORDR)) Q:GRPORDR="" D
41 .S GROUP=0
42 .F S GROUP=$O(^IBE(357.4,"APO",LIST,GRPORDR,GROUP)) Q:'GROUP D
43 ..S HDR=$P($G(^IBE(357.4,GROUP,0)),"^") ;I HDR="BLANK" S HDR="" If don't want to print BLANK group
44 ..S COUNT=COUNT+1,@ARY@(COUNT)="^"_HDR_"^^^"_GROUP_"^"_GRPORDR
45 ..S ORDER=""
46 ..F S ORDER=$O(^IBE(357.3,"APO",LIST,GROUP,ORDER)) Q:ORDER="" D
47 ...S SLCTN=0
48 ...F S SLCTN=$O(^IBE(357.3,"APO",LIST,GROUP,ORDER,SLCTN)) Q:'SLCTN D
49 ....S NODE=$G(^IBE(357.3,SLCTN,0))
50 ....S IEN=$P(NODE,"^")
51 ....S SUBCOL=$O(^IBE(357.3,SLCTN,1,"B",+TSUBCOL,0))
52 ....;
53 ....I 'SUBCOL D Q ;placeholders
54 .....S TEXT=$S($P(NODE,"^",6)?1E.E:$P(NODE,"^",6),1:"BLANK")
55 .....S COUNT=COUNT+1
56 .....S @ARY@(COUNT)=" "_"^"_TEXT_"^"_LIST_"^"_SLCTN_"^"_GROUP_"^"_ORDER Q
57 ....;
58 ....S NODE=$G(^IBE(357.3,SLCTN,1,SUBCOL,0))
59 ....S:$P(NODE,"^")=TSUBCOL TEXT=$P(NODE,"^",2)
60 ....;
61 ....I $L(TEXT) S COUNT=COUNT+1,@ARY@(COUNT)=IEN_"^"_TEXT_"^"_LIST_"^"_SLCTN_"^"_GROUP_"^"_ORDER Q
62 Q
Note: See TracBrowser for help on using the repository browser.