1 | ORY242 ;SLC/MKB -- Support for patch OR*3*242 ;11/21/05 11:16
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**242**;Dec 17, 1997;Build 6
|
---|
3 | ;
|
---|
4 | PRE ; -- preinit
|
---|
5 | D NATURE
|
---|
6 | ;D REASON
|
---|
7 | Q
|
---|
8 | ;
|
---|
9 | POST ; -- postinit
|
---|
10 | D VUID
|
---|
11 | Q
|
---|
12 | ;
|
---|
13 | NATURE ; -- create new Nature of Order, verify standard values
|
---|
14 | N ORI,X,CODE,DA,X0,OR0,DR,DIE
|
---|
15 | ; enforce standard values
|
---|
16 | F ORI=1:1 S X=$T(ITEMS+ORI),CODE=$P(X,";",3) Q:CODE="ZZZZZ" D
|
---|
17 | . S DA=+$O(^ORD(100.02,"C",CODE,0)) Q:DA<1
|
---|
18 | . I +$G(^ORD(100.02,DA,1))'=+$P(X,";",5) S $P(^(1),U)=+$P(X,";",5)
|
---|
19 | . I $P(^ORD(100.02,DA,1),U,4)'=$P(X,";",6) S $P(^(1),U,4)=$P(X,";",6)
|
---|
20 | . S X0=$P(X,";",4),OR0=$G(^ORD(100.02,DA,0))
|
---|
21 | . I OR0'=X0 S DR="" D ;lock std values
|
---|
22 | .. F I=1:1:6 I $P(X0,U,I)'=$P(OR0,U,I) S DR=DR_".0"_I_"///"_$P(X0,U,I)_";"
|
---|
23 | .. I $L(DR) S DIE="^ORD(100.02," D ^DIE
|
---|
24 | ; add new SERVICE REJECT nature
|
---|
25 | S DA=+$O(^ORD(100.02,"B","SERVICE REJECT",0)) Q:DA ;done
|
---|
26 | S DA=+$O(^ORD(100.02,"B","PHARMACY REJECT",0)) I 'DA D ;use if exists,
|
---|
27 | . L +^ORD(100.02,0) ;else get new DA
|
---|
28 | . S DA=11 F S DA=DA+1 Q:'$D(^ORD(100.02,DA))
|
---|
29 | . S $P(^ORD(100.02,0),U,3,4)=DA_U_DA
|
---|
30 | . L -^ORD(100.02,0)
|
---|
31 | ; Kill old xrefs, if updating PHARMACY REJECT
|
---|
32 | S OR0=$G(^ORD(100.02,DA,0))
|
---|
33 | S X=$P(OR0,U) K:$L(X) ^ORD(100.02,"B",X,DA)
|
---|
34 | S X=$P(OR0,U,2) K:$L(X) ^ORD(100.02,"C",X,DA)
|
---|
35 | S X=$P(OR0,U,3) K:$L(X) ^ORD(100.02,"AC",X,DA)
|
---|
36 | ; Set new data
|
---|
37 | S ^ORD(100.02,DA,0)="SERVICE REJECT^R^0^^B^1",^(1)="1^1^0^2^^1"
|
---|
38 | S ^ORD(100.02,"AC",0,DA)=""
|
---|
39 | S ^ORD(100.02,"B","SERVICE REJECT",DA)=""
|
---|
40 | S ^ORD(100.02,"C","R",DA)=""
|
---|
41 | Q
|
---|
42 | ;
|
---|
43 | ITEMS ;;CODE;0-node;CREATE ACTION;DEFAULT SIG STS
|
---|
44 | ;;W;WRITTEN^W^0^^X^0;1;0;
|
---|
45 | ;;V;VERBAL^V^0^^X^0;1;2;
|
---|
46 | ;;P;TELEPHONED^P^0^^X^0;1;2;
|
---|
47 | ;;S;SERVICE CORRECTION^S^0^^B^0;0;6;
|
---|
48 | ;;I;POLICY^I^0^^X^0;1;3;
|
---|
49 | ;;D;DUPLICATE^D^0^^X^1;0;;
|
---|
50 | ;;X;REJECTED^X^1^^B^1;0;;
|
---|
51 | ;;E;ELECTRONICALLY ENTERED^E^1^^F^0;1;2;
|
---|
52 | ;;A;AUTO^A^1^^X^0;0;;
|
---|
53 | ;;C;CHANGED^C^1^^X^1;0;;
|
---|
54 | ;;M;MAINTENANCE^M^1^^X^1;0;;
|
---|
55 | ;;R;SERVICE REJECT^R^0^^B^1;1;2;
|
---|
56 | ;;ZZZZZ;;;;
|
---|
57 | ;
|
---|
58 | REASON ; -- restructure Reason file for standardization
|
---|
59 | ; [save for later use]
|
---|
60 | N ORI,X,CODE,DA,DR,DIE,DIK,LRI,LRX
|
---|
61 | ; update reason NAMEs
|
---|
62 | F ORI=1:1 S X=$T(NAMES+ORI),CODE=$P(X,";",3) Q:CODE="ZZZZZ" D
|
---|
63 | . S DA=+$O(^ORD(100.03,"C",CODE,0)) Q:DA<1
|
---|
64 | . Q:$P($G(^ORD(100.03,DA,0)),U)=$P(X,";",4) ;done
|
---|
65 | . S DR=".01///"_$P(X,";",4),DIE="^ORD(100.03," D ^DIE
|
---|
66 | ; move PACKAGE and CODE fields of #100.03 into multiple
|
---|
67 | S LRI=+$O(^ORD(100.03,"C","LRPCAN",0)),LRX=$G(^ORD(100.03,LRI,0))
|
---|
68 | S ORI=0 F S ORI=$O(^ORD(100.03,ORI)) Q:ORI<1 S X=$G(^(ORI,0)) D
|
---|
69 | . Q:$D(^ORD(100.03,ORI,1,0)) Q:'$P(X,U,5) ;done, or no data
|
---|
70 | . I ORI=LRI S $P(^ORD(100.03,ORI,0),U,4)=1 Q ;add to ORREQ instead
|
---|
71 | . S ^ORD(100.03,ORI,1,0)="^100.031P^1^1",^(1,0)=$P(X,U,5,6)
|
---|
72 | . S ^ORD(100.03,ORI,1,"B",+$P(X,U,5),1)=""
|
---|
73 | . S ^ORD(100.03,"APKG",+$P(X,U,5),ORI,1)=""
|
---|
74 | . S $P(^ORD(100.03,ORI,0),U,5,6)="^"
|
---|
75 | . I $L($P(X,U,6)) D ;reset C xref
|
---|
76 | .. K ^ORD(100.03,"C",$P(X,U,6),ORI)
|
---|
77 | .. S ^ORD(100.03,"C",$P(X,U,6),ORI,1)=""
|
---|
78 | . I $P(X,U,6)="ORREQ",$P(LRX,U,5) D ;add LRPCAN here
|
---|
79 | .. S ^ORD(100.03,ORI,1,0)="^100.031P^2^2",^(2,0)=$P(LRX,U,5,6)
|
---|
80 | .. S ^ORD(100.03,ORI,1,"B",+$P(LRX,U,5),2)=""
|
---|
81 | .. S ^ORD(100.03,"APKG",+$P(LRX,U,5),ORI,2)=""
|
---|
82 | .. S ^ORD(100.03,"C",$P(LRX,U,6),ORI,2)=""
|
---|
83 | .. K ^ORD(100.03,"C",$P(LRX,U,6),LRI)
|
---|
84 | .. S $P(^ORD(100.03,LRI,0),U,5,6)="^"
|
---|
85 | ; remove old PACKAGE and CODE fields, D xref
|
---|
86 | S DIK="^DD(100.03,",DA(1)=100.03 F DA=.05,.06 D ^DIK
|
---|
87 | K ^ORD(100.03,"D")
|
---|
88 | Q
|
---|
89 | ;
|
---|
90 | NAMES ;;CODE;NAME of Reasons
|
---|
91 | ;;ORDUP;DUPLICATE ORDER
|
---|
92 | ;;ORDIS;DISCHARGE
|
---|
93 | ;;ORTRANS;TRANSFER
|
---|
94 | ;;ORSPEC;TREATING SPECIALTY CHANGE
|
---|
95 | ;;ORADMIT;ADMISSION
|
---|
96 | ;;ORREQ;PROVIDER CANCELLED
|
---|
97 | ;;OROBS;OBSOLETE ORDER
|
---|
98 | ;;ORERR;ENTERED IN ERROR
|
---|
99 | ;;ORDEATH;DEATH
|
---|
100 | ;;OROR;SURGERY
|
---|
101 | ;;ORPASS;PATIENT AWAY ON PASS
|
---|
102 | ;;ORASIH;ABSENT SICK IN HOSPITAL
|
---|
103 | ;;ZZZZZ;
|
---|
104 | ;
|
---|
105 | VUID ; -- seed new VUID fields
|
---|
106 | N ORDOMPTR,TMP
|
---|
107 | S TMP=$$GETIEN^HDISVF09("ORDERS",.ORDOMPTR) ;IA#4651
|
---|
108 | I TMP D EN^HDISVCMR(ORDOMPTR,"") ;IA #4639
|
---|
109 | Q
|
---|