1 | ORWDXVB ;slc/dcm - Order dialog utilities for Blood Bank ;12/7/05 17:11
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**215**;Dec 17 1997
|
---|
3 | ;
|
---|
4 | ; DBIA 2503 RR^LR7OR1 ^TMP("LRRR",$J)
|
---|
5 | ;
|
---|
6 | GETPAT(ORX,DFN,ORL) ;Get Patient data from VBECS
|
---|
7 | ;Needs patient DFN and Location (ORL)
|
---|
8 | N ORSTN,DIV
|
---|
9 | S DIV=+$P($G(^SC(+$G(ORL),0)),U,15),ORSTN=$P($$SITE^VASITE(DT,DIV),U,3)
|
---|
10 | D OEAPI^VBECA3(.ORX,DFN,ORSTN)
|
---|
11 | Q
|
---|
12 | PTINFO(OROOT,ORX) ;Format patient BB info
|
---|
13 | Q:'$D(ORX)
|
---|
14 | D PTINFO^ORWDXVB1
|
---|
15 | Q
|
---|
16 | RESULTS(OROOT,DFN,ORX) ;Get test results
|
---|
17 | Q:'$O(ORX(0)) ;ORX contains a list of tests to retrieve results for
|
---|
18 | N ORCOM,ORT,ORTST,ORTDT,ORTMP,GCNT,CCNT,GIOSL,GIOM,I,ORZ
|
---|
19 | S GCNT=0,CCNT=1,GIOSL=999999,GIOM=80
|
---|
20 | S OROOT=$NA(^TMP("ORVBEC",$J))
|
---|
21 | K ^TMP("ORVBEC",$J)
|
---|
22 | D LN
|
---|
23 | S ^TMP("ORVBEC",$J,GCNT,0)=$$S^ORU4(1,CCNT,"RECENT LAB RESULTS:",.CCNT)
|
---|
24 | D LN
|
---|
25 | S ^TMP("ORVBEC",$J,GCNT,0)=$$S^ORU4(1,CCNT,"Test Result Units Range Collected Accession Sts",.CCNT)
|
---|
26 | D LN
|
---|
27 | S ^TMP("ORVBEC",$J,GCNT,0)=$$S^ORU4(1,CCNT,"---- ------ ----- ----- --------- --------- ---",.CCNT)
|
---|
28 | S ORT=0 F S ORT=$O(ORX(ORT)) Q:'ORT S ORTST=$P(ORX(ORT),"^",1) D
|
---|
29 | . K ^TMP("LRRR",$J) D RR^LR7OR1(DFN,,,,,ORTST,,1) ;DBIA 2503
|
---|
30 | . S ORTMP="^TMP(""LRRR"",$J,DFN)",ORTMP=$Q(@ORTMP)
|
---|
31 | . Q:$P(ORTMP,",",1,3)'=("^TMP(""LRRR"","_$J_","_DFN)
|
---|
32 | . S ORTDT=9999999-+$P(ORTMP,",",5),ORZ=@ORTMP
|
---|
33 | . D LN
|
---|
34 | . S ^TMP("ORVBEC",$J,GCNT,0)=$$S^ORU4(1,CCNT,$P(ORZ,"^",15),.CCNT)_$$S^ORU4(8,CCNT,$J($P(ORZ,"^",2),7),.CCNT)_$$S^ORU4(16,CCNT,$P(ORZ,"^",3),.CCNT)_$$S^ORU4(19,CCNT,$P(ORZ,"^",4),.CCNT)_$$S^ORU4(30,CCNT,$P(ORZ,"^",5),.CCNT)
|
---|
35 | . S ^(0)=^TMP("ORVBEC",$J,GCNT,0)_$$S^ORU4(40,CCNT,$$DATETIME^ORCHTAB(ORTDT),.CCNT)_$$S^ORU4(56,CCNT,$P(ORZ,"^",16),.CCNT)_$$S^ORU4(71,CCNT,$P(ORZ,"^",6),.CCNT)
|
---|
36 | . S ORCOM=$P(ORTMP,",",1,5)_",""N""" ;check for comments
|
---|
37 | . F S ORTMP=$Q(@ORTMP) Q:$P(ORTMP,",",1,6)'=ORCOM D
|
---|
38 | .. D LN
|
---|
39 | .. S ^TMP("ORVBEC",$J,GCNT,0)=$$S^ORU4(1,CCNT,@ORTMP,.CCNT)
|
---|
40 | K ^TMP("LRRR",$J)
|
---|
41 | Q
|
---|
42 | RAW(OROOT,DFN,ORX) ;Get RAW test results
|
---|
43 | Q:'$O(ORX(0)) ;ORX contains a list of tests to retrieve results for
|
---|
44 | N ORCOM,ORT,ORTST,ORTDT,ORTMP,GCNT,CCNT,GIOSL,GIOM,I
|
---|
45 | S GCNT=0,CCNT=1,GIOSL=999999,GIOM=80
|
---|
46 | S OROOT=$NA(^TMP("ORVBEC",$J))
|
---|
47 | K ^TMP("ORVBEC",$J)
|
---|
48 | S ORT=0 F S ORT=$O(ORX(ORT)) Q:'ORT S ORTST=$P(ORX(ORT),"^",1) D
|
---|
49 | . K ^TMP("LRRR",$J) D RR^LR7OR1(DFN,,,,,ORTST,,1)
|
---|
50 | . S ORTMP="^TMP(""LRRR"",$J,DFN)",ORTMP=$Q(@ORTMP)
|
---|
51 | . Q:$P(ORTMP,",",1,3)'=("^TMP(""LRRR"","_$J_","_DFN)
|
---|
52 | . S ORTDT=9999999-+$P(ORTMP,",",5),ORZ=@ORTMP
|
---|
53 | . D LN
|
---|
54 | . S ^TMP("ORVBEC",$J,GCNT,0)=$P(ORZ,"^",1,6)_"^"_ORTDT
|
---|
55 | K ^TMP("LRRR",$J)
|
---|
56 | Q
|
---|
57 | SURG(OROOT,ORX) ;Get list of surgeries
|
---|
58 | N I,CNT,X
|
---|
59 | S (I,CNT)=0
|
---|
60 | F S I=$O(ORX("SURGERY",I)) Q:'I S X=$G(ORX("SURGERY",I)) D
|
---|
61 | . S CNT=CNT+1,OROOT(CNT)=X_U_X
|
---|
62 | Q
|
---|
63 | LN ;Increment counts
|
---|
64 | S GCNT=GCNT+1,CCNT=1
|
---|
65 | Q
|
---|
66 | PATINFO(OROOT,DFN,LOC) ;Test ^TMP global output
|
---|
67 | N ORX
|
---|
68 | D GETPAT(.ORX,DFN,LOC)
|
---|
69 | I $L($G(ORX("SPECIMEN"))) S:$P(ORX("SPECIMEN"),"^") $P(ORX("SPECIMEN"),"^")=$$HL7TFM^XLFDT($P(ORX("SPECIMEN"),"^"))
|
---|
70 | D PTINFO(.OROOT,.ORX)
|
---|
71 | ;S I=0 F S I=$O(@OROOT@(I)) Q:'I W !,^(I,0)
|
---|
72 | ;K @OROOT
|
---|
73 | Q
|
---|
74 | GETALL(OROOT,DFN,LOC) ;Get all data in one call and let the GUI divide it up
|
---|
75 | N ORX,INFO,CNT,I,J,K
|
---|
76 | S OROOT=$NA(^TMP("ORVBECINFO",$J)),CNT=1
|
---|
77 | D GETPAT(.ORX,DFN,LOC)
|
---|
78 | ;S ^TMP("ORVBECINFO",$J,CNT)="~RAWDATA",I=0
|
---|
79 | ;F S I=$O(ORX(I)) Q:'I S CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)=ORX(I)
|
---|
80 | I $L($G(ORX("SPECIMEN"))) S:$P(ORX("SPECIMEN"),"^") $P(ORX("SPECIMEN"),"^")=$$HL7TFM^XLFDT($P(ORX("SPECIMEN"),"^")) S CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)="~SPECIMEN",CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)="i"_ORX("SPECIMEN")
|
---|
81 | I $L($G(ORX("ABORH"))) S CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)="~ABORH",CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)="i"_ORX("ABORH")
|
---|
82 | S CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)="~TYPE AND SCREEN",CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)="i"_$O(^ORD(101.43,"S.VBEC","TYPE & SCREEN",0))
|
---|
83 | S CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)="~SPECIMENS",I=0
|
---|
84 | F S I=$O(ORX(I)) Q:'I S J="" F S J=$O(ORX(I,J)) Q:J="" I J="SPECIMEN" S CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)="i"_I_"^"_ORX(I,J)
|
---|
85 | S CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)="~TESTS",I=0
|
---|
86 | F S I=$O(ORX(I)) Q:'I S J="" F S J=$O(ORX(I,J)) Q:J="" I J="TEST" S K=0 F S K=$O(ORX(I,J,K)) Q:'K S CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)="i"_I_"^"_K_"^"_ORX(I,J,K)
|
---|
87 | S CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)="~MSBOS",I=0
|
---|
88 | F S I=$O(ORX(I)) Q:'I S J="" F S J=$O(ORX(I,J)) Q:J="" I J="MSBOS" S K=0 F S K=$O(ORX(I,J,K)) Q:'K S CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)="i"_I_"^"_K_"^"_ORX(I,J,K),$P(^(CNT),"^",4)=+$P(ORX(I,J,K),"^",2)
|
---|
89 | S CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)="~SURGERIES",I=0
|
---|
90 | F S I=$O(ORX("SURGERY",I)) Q:'I S CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)="i"_I_"^"_ORX("SURGERY",I)
|
---|
91 | S CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)="~URGENCIES",I=""
|
---|
92 | F S I=$O(^ORD(101.42,"S.VBEC",I)) Q:I="" S J=0 F S J=$O(^ORD(101.42,"S.VBEC",I,J)) Q:'J S CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)="i"_J_"^"_I
|
---|
93 | S CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)="~MODIFIERS",I=""
|
---|
94 | N ORMODS D GETLST^XPAR(.ORMODS,"ALL","OR VBECS MODIFIERS","I")
|
---|
95 | F S I=$O(ORMODS(I)) Q:'I S CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)="i"_ORMODS(I)
|
---|
96 | ;F I="W^Washed","I^Irradiated","L^Leuko Reduced","V^Volume Reduced","D^Divided","E^Leuko Reduced/Irradiated" S CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)="i"_I
|
---|
97 | S CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)="~INFO",I=0
|
---|
98 | D PTINFO(.INFO,.ORX)
|
---|
99 | F S I=$O(^TMP("ORVBEC",$J,I)) Q:'I S CNT=CNT+1,^TMP("ORVBECINFO",$J,CNT)="i"_^TMP("ORVBEC",$J,I,0)
|
---|
100 | K ^TMP("ORVBEC",$J)
|
---|
101 | Q
|
---|
102 | STATALOW(OROOT,DFN) ;Allow stat for ORES ORELSE users
|
---|
103 | S OROOT=$D(^XUSEC("ORES",DUZ))!($D(^XUSEC("ORELSE",DUZ)))
|
---|
104 | Q
|
---|
105 | COMPORD(OROOT) ;Get sequence order of Blood Components
|
---|
106 | N ORLIST,I,X
|
---|
107 | D GETLST^XPAR(.ORLIST,"ALL","OR VBECS COMPONENT ORDER")
|
---|
108 | S I=0 F S I=$O(ORLIST(I)) Q:'I S X=ORLIST(I) I $D(^ORD(101.43,$P(X,"^",2),0)) S OROOT(I)=$P(X,"^",2)_"^"_$P(^(0),"^",1)_"^"_$P(^(0),"^",1)
|
---|
109 | Q
|
---|
110 | TESTR ;Test results call
|
---|
111 | N ORX
|
---|
112 | S ORX(3)="3" ;HGB
|
---|
113 | S ORX(4)="4" ;HCT
|
---|
114 | S ORX(1)="1" ;WBC
|
---|
115 | S ORX(113)="113" ;FERRITIN
|
---|
116 | D RESULTS(.OROOT,66,.ORX)
|
---|
117 | S I=0 F S I=$O(@OROOT@(I)) Q:'I W !,^(I,0)
|
---|
118 | K @OROOT
|
---|
119 | Q
|
---|