1 | ORDV04A ;SLC/DAN - OE/RR ;7/30/01 14:33
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**109**;Dec 17,1997
|
---|
3 | ;
|
---|
4 | Q
|
---|
5 | ENSR ; Entry point for component
|
---|
6 | ;External calls to ^GMTSROB, ^DIQ, ^GMTSORC, ^DIWP
|
---|
7 | ;External references to ^SRF, ^DD, ^ICPT
|
---|
8 | N GMIDT,GMN,SURG
|
---|
9 | I '$D(^SRF("B",DFN)) Q
|
---|
10 | S GMN=0 F S GMN=$O(^SRF("B",DFN,GMN)) Q:GMN'>0 D SORT
|
---|
11 | I '$D(SURG) Q
|
---|
12 | S GMIDT=0 F S GMIDT=$O(SURG(GMIDT)) Q:GMIDT'>0!(ORCNT'<ORMAX) S GMN=SURG(GMIDT) D EXTRCT
|
---|
13 | Q
|
---|
14 | ;
|
---|
15 | SORT ; Sort surgeries by inverted date
|
---|
16 | N GMDT
|
---|
17 | S GMDT=$P(^SRF(GMN,0),U,9) I GMDT>ORDBEG&(GMDT<ORDEND) D
|
---|
18 | . F Q:'$D(SURG(9999999-GMDT)) S GMDT=GMDT+.0001
|
---|
19 | . S SURG(9999999-GMDT)=GMN
|
---|
20 | Q
|
---|
21 | EXTRCT ; Extract surgical case record
|
---|
22 | N X,GMI,GMDT,OPPRC,POSDX,PREDX,SPEC,STATUS,SURGEON,VER
|
---|
23 | N DCTDTM,TRSDTM,Y,C,DIWL,DIWF,ORSITE,ORMORE,SITE
|
---|
24 | S ORCNT=ORCNT+1,ORMORE=0
|
---|
25 | S GMDT=$$DATE^ORDVU($P(^SRF(GMN,0),U,9))
|
---|
26 | D STATUS^GMTSROB S:'$D(STATUS) STATUS="UNKNOWN"
|
---|
27 | S X=$P(^SRF(GMN,0),U,4) I X>0 S Y=X,C=$P(^DD(130,.04,0),U,2) D Y^DIQ S SPEC=Y K Y
|
---|
28 | I $D(^SRF(GMN,.1)) S X=$P(^SRF(GMN,.1),U,4) I X>0 S Y=X,C=$P(^DD(130,.14,0),U,2) D Y^DIQ S SURGEON=Y K Y
|
---|
29 | S VER=$S($G(^SRF(GMN,"VER"))'="Y":"(Unverified)",1:"")
|
---|
30 | S PREDX(0)=$S($G(^SRF(GMN,33))]"":$P(^(33),U),1:"") S GMI=0 F S GMI=$O(^SRF(GMN,14,GMI)) Q:GMI'>0 S PREDX(GMI)=$P(^SRF(GMN,14,GMI,0),U)
|
---|
31 | S POSDX(0)=$S($G(^SRF(GMN,34))]"":$P(^(34),U),1:"") S GMI=0 F S GMI=$O(^SRF(GMN,15,GMI)) Q:GMI'>0 S POSDX(GMI)=$P(^SRF(GMN,15,GMI,0),U)
|
---|
32 | S OPPRC(0)=$P($G(^SRF(GMN,"OP")),U,1,2) S:$P(OPPRC(0),U,2)]"" $P(OPPRC(0),U,2)=$P($$CPT^ICPTCOD($P($G(^SRF(GMN,"OP")),U,2)),U,3) D
|
---|
33 | . S GMI=0 F S GMI=$O(^SRF(GMN,13,GMI)) Q:GMI'>0 S OPPRC(GMI)=$P($G(^SRF(GMN,13,GMI,0)),U)_U_$G(^SRF(GMN,13,GMI,2)) S:$P(OPPRC(GMI),U,2)]"" $P(OPPRC(GMI),U,2)=$P($$CPT^ICPTCOD($P($G(^SRF(GMN,13,GMI,2)),U)),U,3)
|
---|
34 | S X=$P($G(^SRF(GMN,31)),U,6) S:X>0 DCTDTM=$$DATE^ORDVU(X)
|
---|
35 | S X=$P($G(^SRF(GMN,31)),U,7) S:X>0 TRSDTM=$$DATE^ORDVU(X)
|
---|
36 | S DIWL=0,DIWF="N",ORSITE=$$SITE^VASITE,ORSITE=$P(ORSITE,"^",2)_";"_$P(ORSITE,"^",3)
|
---|
37 | K ^UTILITY($J,"W")
|
---|
38 | I $D(^SRF(GMN,12)) F GMI=1:1:$P(^SRF(GMN,12,0),U,4) S X=^SRF(GMN,12,GMI,0) D ^DIWP
|
---|
39 | S SITE=ORSITE
|
---|
40 | S ^TMP("ORDATA",$J,GMIDT,"WP",1)="1^"_SITE ;Station ID
|
---|
41 | S ^TMP("ORDATA",$J,GMIDT,"WP",2)="2^"_GMDT ; date
|
---|
42 | ;
|
---|
43 | ; Operative Procedure(s)
|
---|
44 | S GMI="" F S GMI=$O(OPPRC(GMI)) Q:GMI="" D S:GMI ORMORE=1
|
---|
45 | . S ^TMP("ORDATA",$J,GMIDT,"WP",3,GMI)="3^"_$P(OPPRC(GMI),U)_$S($P(OPPRC(GMI),U,2)]"":" - "_$P(OPPRC(GMI),U,2),1:"")
|
---|
46 | ;
|
---|
47 | S ^TMP("ORDATA",$J,GMIDT,"WP",4)="4^"_$G(SPEC) ;surgical specialty
|
---|
48 | ;
|
---|
49 | S ^TMP("ORDATA",$J,GMIDT,"WP",5)="5^"_$G(SURGEON) ; surgeon
|
---|
50 | S ^TMP("ORDATA",$J,GMIDT,"WP",6)="6^"_$G(STATUS) ; op status
|
---|
51 | ;
|
---|
52 | ; Pre-operative diagnosis
|
---|
53 | S GMI="" F S GMI=$O(PREDX(GMI)) Q:GMI="" D S:GMI ORMORE=1
|
---|
54 | . S ^TMP("ORDATA",$J,GMIDT,"WP",7,GMI)="7^"_PREDX(GMI)
|
---|
55 | ;
|
---|
56 | ; Post-operative diagnosis
|
---|
57 | S GMI="" F S GMI=$O(POSDX(GMI)) Q:GMI="" D S:GMI ORMORE=1
|
---|
58 | . S ^TMP("ORDATA",$J,GMIDT,"WP",8,GMI)="8^"_POSDX(GMI)
|
---|
59 | ;
|
---|
60 | ; Lab work? Y/N
|
---|
61 | S ^TMP("ORDATA",$J,GMIDT,"WP",9)="9^"_$S($O(^SRF(GMN,9,0)):"Yes",1:"No")
|
---|
62 | S ^TMP("ORDATA",$J,GMIDT,"WP",10)="10^"_$G(DCTDTM) ; dictation time
|
---|
63 | S ^TMP("ORDATA",$J,GMIDT,"WP",11)="11^"_$G(TRSDTM) ; transcription time
|
---|
64 | ;
|
---|
65 | ; surgeon's dictation
|
---|
66 | I $D(^UTILITY($J,"W")) D S ORMORE=1
|
---|
67 | . K ^TMP("ORHSSRT",$J)
|
---|
68 | . F GMI=1:1:^UTILITY($J,"W",DIWL) D
|
---|
69 | .. S ^TMP("ORHSSRT",$J,GMIDT,"WP",GMI)=^UTILITY($J,"W",DIWL,GMI,0)
|
---|
70 | . D SPMRG^ORDVU($NA(^TMP("ORHSSRT",$J,GMIDT,"WP")),$NA(^TMP("ORDATA",$J,GMIDT,"WP",12)),12)
|
---|
71 | . K ^UTILITY($J,"W")
|
---|
72 | . K ^TMP("ORHSSRT",$J)
|
---|
73 | I ORMORE S ^TMP("ORDATA",$J,GMIDT,"WP",13)="13^[+]" ;flag for detail
|
---|
74 | Q
|
---|