1 | ORWU16 ; SLC/KCM - General Utilites for Windows Calls 16bit
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;;Dec 17, 1997
|
---|
3 | ;
|
---|
4 | USERINFO(Y) ; procedure
|
---|
5 | ; return DUZ^NAME^SIGNAUTH^ISPROVIDER for the current user
|
---|
6 | ; I DUZ=1085 S DUZ=1298 ; CHANGE ID **** DON'T EXPORT ****
|
---|
7 | S Y=DUZ_U_$P(^VA(200,DUZ,0),U,1)
|
---|
8 | S $P(Y,U,3)=$S($D(^XUSEC("ORES",DUZ)):3,$D(^XUSEC("ORELSE",DUZ)):2,$D(^XUSEC("OREMAS",DUZ)):1,1:0)
|
---|
9 | S $P(Y,U,4)=$D(^XUSEC("PROVIDER",DUZ))#10
|
---|
10 | Q
|
---|
11 | VALIDSIG(ESOK,X) ; procedure
|
---|
12 | S X=$$DECRYP^XUSRB1(X),ESOK=0
|
---|
13 | D HASH^XUSHSHP
|
---|
14 | I X=$P($G(^VA(200,+DUZ,20)),U,4) S ESOK=1
|
---|
15 | Q
|
---|
16 | HOSPLOC(Y,DIR,FROM) ; Return a bolus from the HOSPITAL LOCATION file
|
---|
17 | ; .Return Array, Direction, Starting Text
|
---|
18 | N I,IEN,CNT S CNT=44
|
---|
19 | ;
|
---|
20 | I DIR=0 D ; Forward direction
|
---|
21 | . F I=1:1:CNT S FROM=$O(^SC("B",FROM)) Q:FROM="" D
|
---|
22 | . . S IEN=$O(^SC("B",FROM,0))
|
---|
23 | . . I $$ACTLOC(IEN) S Y(I)=IEN_"^"_FROM
|
---|
24 | . I $G(Y(CNT))="" S Y(I)=""
|
---|
25 | ;
|
---|
26 | I DIR=1 D ; Reverse direction
|
---|
27 | . F I=1:1:CNT S FROM=$O(^SC("B",FROM),-1) Q:FROM="" D
|
---|
28 | . . S IEN=$O(^SC("B",FROM,0))
|
---|
29 | . . I $$ACTLOC(IEN) S Y(I)=IEN_"^"_FROM
|
---|
30 | Q
|
---|
31 | ACTLOC(LOC) ; Function
|
---|
32 | ; Returns 1 (true) if active hospital location, otherwise 0 (false)
|
---|
33 | N D0,X I +$G(^SC(LOC,"OOS")) Q 0 ; screen out OOS entry
|
---|
34 | S D0=+$G(^SC(LOC,42)) I D0 D WIN^DGPMDDCF Q 'X ; chk out of svc wards
|
---|
35 | S X=$G(^SC(LOC,"I")) I +X=0 Q 1 ; no inactivate date
|
---|
36 | I DT>$P(X,U)&($P(X,U,2)=""!(DT<$P(X,U,2))) Q 0 ; chk reactivate date
|
---|
37 | Q 1 ; must still be active
|
---|
38 | ;
|
---|
39 | NEWPERS(Y,DIR,FROM,KEY) ; Return a bolus from the NEW PERSON file
|
---|
40 | ; .Return Array, Direction, Starting Text
|
---|
41 | N I,IEN,CNT S CNT=44,KEY=$G(KEY)
|
---|
42 | ;
|
---|
43 | I DIR=0 D ; Forward direction
|
---|
44 | . F I=1:1:CNT S FROM=$O(^VA(200,"B",FROM)) Q:FROM="" D
|
---|
45 | . . S IEN=$O(^VA(200,"B",FROM,0)) I $L(KEY),'$D(^XUSEC(KEY,IEN)) Q
|
---|
46 | . . S Y(I)=IEN_"^"_FROM
|
---|
47 | . I $G(Y(CNT))="" S Y(I)=""
|
---|
48 | ;
|
---|
49 | I DIR=1 D ; Reverse direction
|
---|
50 | . F I=1:1:CNT S FROM=$O(^VA(200,"B",FROM),-1) Q:FROM="" D
|
---|
51 | . . S IEN=$O(^VA(200,"B",FROM,0)) I $L(KEY),'$D(^XUSEC(KEY,IEN)) Q
|
---|
52 | . . S Y(I)=IEN_"^"_FROM
|
---|
53 | Q
|
---|
54 | DEVICE(Y) ; Return a list of devices
|
---|
55 | S I=0,DEV=""
|
---|
56 | F S DEV=$O(^%ZIS(1,"B",DEV)) Q:DEV="" S IEN=$O(^(DEV,0)) D
|
---|
57 | . I $E($G(^%ZIS(2,+$G(^%ZIS(1,IEN,"SUBTYPE")),0)))'="P" Q
|
---|
58 | . I $P($G(^%ZIS(1,IEN,0)),U,12)=2 Q
|
---|
59 | . S I=I+1,Y(I)=IEN_";"_$P(^%ZIS(1,IEN,0),U)_U_DEV_U_$P($G(^(1)),U)_U_$P($G(^(90)),U)_U_$P(^(91),U)_U_$P(^(91),U,3)
|
---|
60 | Q
|
---|
61 | VALDT(Y,X,%DT) ; Validate date/time entry
|
---|
62 | S:'$D(%DT) %DT="TX" D ^%DT
|
---|
63 | Q
|
---|
64 | ;
|
---|
65 | URGENCY(Y) ; -- retrieve set values from dd for discharge summary urgency
|
---|
66 | N ORDD,I,X
|
---|
67 | D FIELD^DID(8925,.09,"","POINTER","ORDD")
|
---|
68 | F I=1:1 S X=$P(ORDD("POINTER"),";",I) Q:X="" S Y(I)=$TR(X,":","^")
|
---|
69 | Q
|
---|
70 | ;
|
---|