1 | ORY26 ;SLC/MKB-Postinit for patch OR*3*26
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**26**;Dec 17, 1997
|
---|
3 | ;
|
---|
4 | ENV ; -- environment check
|
---|
5 | ;
|
---|
6 | I '$L($T(GETSVC^GMRCPR0)) W !!,"GMRC*3*5 V5 or higher must be installed!" S XPDQUIT=1 Q
|
---|
7 | Q
|
---|
8 | ;
|
---|
9 | PRE ; -- Kill B xref if first install, to be rebuilt in POST
|
---|
10 | ;
|
---|
11 | D OI,PAIN ;inactivate invalid service orderables, add Pain
|
---|
12 | I '$O(^ORD(101.41,"B","OR GTX REQUEST SERVICE",0)) K ^ORD(101.43,"B")
|
---|
13 | Q
|
---|
14 | ;
|
---|
15 | POST ; -- cleanup consult orderables, consult-type qo's
|
---|
16 | ;
|
---|
17 | D XREF,GMRCT
|
---|
18 | Q
|
---|
19 | ;
|
---|
20 | XREF ; -- Rebuild B, S.XXX xrefs on Orderable Items file #101.43
|
---|
21 | ;
|
---|
22 | Q:$D(^ORD(101.43,"B")) N IDX,DIK,DA
|
---|
23 | S IDX="S" F S IDX=$O(^ORD(101.43,IDX)) Q:IDX'?1"S."1.U K ^(IDX)
|
---|
24 | S DIK="^ORD(101.43,",DIK(1)=".01^B^S0^SS2" D ENALL^DIK
|
---|
25 | ;D EN^GMRCPOS1
|
---|
26 | Q
|
---|
27 | ;
|
---|
28 | GMRCT ; -- new field for GMRCT* quick orders
|
---|
29 | ;
|
---|
30 | N CT,FT,DG,ORDLG,OR0,DA,HDR
|
---|
31 | S FT=$$PTR^ORCD("OR GTX FREE TEXT 1"),CT=$$PTR^ORCD("OR GTX FREE TEXT OI"),DG=$O(^ORD(100.98,"B","CSLT",0)),ORDLG=0
|
---|
32 | F S ORDLG=$O(^ORD(101.41,ORDLG)) Q:ORDLG'>0 S OR0=$G(^(ORDLG,0)) D
|
---|
33 | . Q:$P(OR0,U,5)'=DG Q:$P(OR0,U,4)'="Q" ;must be consult qo
|
---|
34 | . S DA=+$O(^ORD(101.41,ORDLG,6,"D"),-1) ;last one
|
---|
35 | . Q:$P($G(^ORD(101.41,ORDLG,6,DA,0)),U,2)'=FT ;ok
|
---|
36 | . S HDR=^ORD(101.41,ORDLG,6,0) K ^(DA) S DA=DA-1
|
---|
37 | . S $P(^ORD(101.41,ORDLG,6,0),U,3,4)=DA_U_($P(HDR,U,4)-1)
|
---|
38 | S ORDLG=+$O(^ORD(101.41,"B","GMRCOR CONSULT",0))
|
---|
39 | S $P(^ORD(101.41,ORDLG,10,1,2),U,2)="@"_CT ;Format code
|
---|
40 | Q
|
---|
41 | ;
|
---|
42 | OI ; -- validate Consult service orderables
|
---|
43 | ;
|
---|
44 | N NM,IFN,OI,REBLD,NOW,USAGE,GMRC
|
---|
45 | S NM="",REBLD=0,NOW=$$NOW^XLFDT
|
---|
46 | F S NM=$O(^ORD(101.43,"S.CSLT",NM)) Q:NM="" S IFN=0 D
|
---|
47 | . F S IFN=$O(^ORD(101.43,"S.CSLT",NM,IFN)) Q:IFN'>0 D
|
---|
48 | . . S OI=$G(^ORD(101.43,IFN,0)),ID=$P(OI,U,2)
|
---|
49 | . . S GMRC=$G(^GMR(123.5,+ID,0)),USAGE=$P(GMRC,U,2)
|
---|
50 | . . I ID'?1.N1";99CON"!'$L(GMRC)!($P(GMRC,U)'=$P(OI,U)) D INACT Q
|
---|
51 | . . I USAGE=9 D:$G(^ORD(101.43,IFN,.1))'>0 INACT Q
|
---|
52 | . . S $P(^ORD(101.43,IFN,"CS"),U)=USAGE I $G(^(.1))>0 K ^(.1) S REBLD=1
|
---|
53 | K:$G(REBLD) ^ORD(101.43,"B") ;force postinit to rebuild
|
---|
54 | Q
|
---|
55 | ;
|
---|
56 | INACT ; -- inactivate orderable, set REBLD flag
|
---|
57 | Q:$G(^ORD(101.43,IFN,.1))>0 ;already inactive
|
---|
58 | S ^ORD(101.43,IFN,.1)=NOW,REBLD=1
|
---|
59 | Q
|
---|
60 | ;
|
---|
61 | PAIN ; -- add Pain to Orderable Items file
|
---|
62 | Q:$O(^ORD(101.43,"S.V/M","PAIN",0)) N X,Y,DIC,DA,DR,DIE,ID,ORDG
|
---|
63 | S X="Pain",DIC="^ORD(101.43,",DIC(0)="LX",DLAYGO=101.43
|
---|
64 | K DD,DO D FILE^DICN Q:Y'>0 S DA=+Y,DIE=DIC
|
---|
65 | S ORDG=+$O(^ORD(100.98,"B","V/M",0)),ID=DA_";99ORD"
|
---|
66 | S DR="1.1///"_X_";2///^S X=ID;5////"_ORDG D ^DIE
|
---|
67 | Q
|
---|