1 | ORRHCU ; SLC/KCM - CPRS Query Tools - Utilities ; [8/6/03 1:27Pm]
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**153,174**;Dec 17, 1997
|
---|
3 | ;
|
---|
4 | NXT() ; Increment ILST
|
---|
5 | S ILST=ILST+1
|
---|
6 | Q ILST
|
---|
7 | ;
|
---|
8 | RNG2FM(RNG) ; convert a relative date range to Fileman dates
|
---|
9 | N FMRNG
|
---|
10 | I $E(RNG,1)="Y" D
|
---|
11 | . N YR,TYP,QTR
|
---|
12 | . S YR=$E(DT,1,3),TYP=$E(RNG,2) I (TYP="F"),(+$E(DT,4,5)>9) S YR=YR+1
|
---|
13 | . S YR=YR+$E(RNG,3,999)
|
---|
14 | . I (RNG["Q"),($P(RNG,"Q",2)="") S RNG=RNG_$$CURQTR($E(RNG,2)="F")
|
---|
15 | . I $P(RNG,"Q",2)="" D Q
|
---|
16 | . . I TYP="C" S FMRNG=YR_"0101:"_YR_"1231"
|
---|
17 | . . I TYP="F" S FMRNG=(YR-1)_"1001:"_YR_"0930"
|
---|
18 | . S QTR=+$P(RNG,"Q",2)
|
---|
19 | . I TYP="F" S:QTR=1 YR=YR-1 S QTR=QTR-1 S:QTR=0 QTR=4
|
---|
20 | . S FMRNG=YR_$P("0101^0401^0701^1001",U,QTR)_":"_YR
|
---|
21 | . S FMRNG=FMRNG_$P("0331^0630^0930^1231",U,QTR)
|
---|
22 | E D
|
---|
23 | . N BDT,EDT,%DT,X,Y
|
---|
24 | . S BDT=$P(RNG,":",1),EDT=$P(RNG,":",2)
|
---|
25 | . I $L(BDT) S X=BDT D ^%DT S BDT=Y
|
---|
26 | . I $L(EDT) S X=EDT D ^%DT S EDT=Y
|
---|
27 | . I '$L(BDT) S BDT=0
|
---|
28 | . I '$L(EDT) S EDT=9999999
|
---|
29 | . S FMRNG=BDT_":"_EDT
|
---|
30 | Q FMRNG
|
---|
31 | CURQTR(ISFY) ; return the current fiscal or calendar quarter
|
---|
32 | N QTR
|
---|
33 | S QTR=$P(($E(DT,4,5)-1)/3,".")+1
|
---|
34 | I ISFY S QTR=QTR+1 S:QTR=5 QTR=1
|
---|
35 | Q QTR
|
---|
36 | ID2EXT(LST,FN,IDLST) ; Return the external values for a set if IENs
|
---|
37 | N I
|
---|
38 | S I=0 F S I=$O(IDLST(I)) Q:'I D
|
---|
39 | . I +IDLST(I)=0 S LST(I)=IDLST(I) Q
|
---|
40 | . S LST(I)=IDLST(I)_U_$$GET1^DIQ(FN,IDLST(I),.01)
|
---|
41 | Q
|
---|
42 | BYREG(LST,NAM,MOD) ; List patients from registry
|
---|
43 | N ILST,RC,ITR,PATID S ILST=0
|
---|
44 | I $$PATITER^RORAPI01(.ITR,NAM,MOD)<0 Q
|
---|
45 | F S RC=$$NEXTPAT^RORAPI01(.ITR) Q:RC'>0 D
|
---|
46 | . S PATID=$P(RC,U)
|
---|
47 | . S LST($$NXT)=PATID_U_$P(^DPT(PATID,0),U)
|
---|
48 | Q
|
---|
49 | REGLST(LST) ; List available local registries
|
---|
50 | S LST(1)="VA HEPC^Local HepC Registry"
|
---|
51 | Q
|
---|
52 | REGNAM(VAL,ID) ; Return the full name of a registry
|
---|
53 | S VAL="Unknown Registry"
|
---|
54 | I ID="VA HEPC" S VAL="Local HepC Registry"
|
---|
55 | Q
|
---|
56 | NMVAL(NM,VAL) ; Set a name=value pair
|
---|
57 | Q:NM="" Q:VAL=""
|
---|
58 | S LST($$NXT)=NM_"="_VAL
|
---|
59 | Q
|
---|
60 | DFLDS(LST,TYP) ; List display fields
|
---|
61 | N I,J,ILST,X0 S ILST=0
|
---|
62 | S TYP=$$DFLDTRAN(TYP) ; consults, orders return same fields
|
---|
63 | S I=0 F S I=$O(^ORD(102.24,I)) Q:'I D
|
---|
64 | . S X0=^ORD(102.24,I,0)
|
---|
65 | . Q:TYP'[$E(X0) ; 1st char of name corresponds to type
|
---|
66 | . ; S LST($$NXT)=X0
|
---|
67 | . D NMVAL("DisplayName",$P(X0,U,2)) ; must be first
|
---|
68 | . D NMVAL("InternalName",$P(X0,U))
|
---|
69 | . D NMVAL("HeaderName",$P(X0,U,3))
|
---|
70 | . D NMVAL("SortType",$P(X0,U,4))
|
---|
71 | . S J=0 F S J=$O(^ORD(102.24,I,1,J)) Q:'J D
|
---|
72 | . . D NMVAL("SampleData",$G(^ORD(102.24,I,1,J,0)))
|
---|
73 | Q
|
---|
74 | COLTYP(LST,SRC) ; List the column types
|
---|
75 | N I,IEN
|
---|
76 | S I=0 F S I=$O(SRC(I)) Q:'I D
|
---|
77 | . S IEN=$O(^ORD(102.24,"B",SRC(I),0))
|
---|
78 | . I 'IEN S LST(I)=SRC(I)_"^0"
|
---|
79 | . E S LST(I)=SRC(I)_U_$P($G(^ORD(102.24,IEN,0)),U,4)
|
---|
80 | Q
|
---|
81 | ;
|
---|
82 | DFLDMAP(LST) ; Returns a mapping of constraint types to display field types
|
---|
83 | N FLDLIST S FLDLIST=$$GETFLDLS
|
---|
84 | N TRANSLST S TRANSLST=$$DFLDTRAN(FLDLIST)
|
---|
85 | N I S I=0
|
---|
86 | F S I=I+1 Q:I>$L(FLDLIST) D
|
---|
87 | .S LST(I)=$E(FLDLIST,I)_"="_$E(TRANSLST,I)
|
---|
88 | Q
|
---|
89 | ;
|
---|
90 | DFLDTRAN(FLD) ;Translates the constraint types to the display field types
|
---|
91 | Q $TR(FLD,"C","O")
|
---|
92 | ;
|
---|
93 | GETFLDLS() ;Returns a list of defined display fields
|
---|
94 | N LIST
|
---|
95 | S LIST="PODVC"
|
---|
96 | Q LIST
|
---|
97 | ;
|
---|