1 | GMRCISG1 ;SLC/JFR - BUILD IFC HL7 SEGMENTS CONT'D ;10/31/01 09:00
|
---|
2 | ;;3.0;CONSULT/REQUEST TRACKING;**22**;DEC 27, 1997
|
---|
3 | Q ;can't start here
|
---|
4 | ORCRESP(GMRCO,GMRCOC,GMRCOS) ;build ORC for app ACK msgs
|
---|
5 | ; Input:
|
---|
6 | ; GMRCO = ien from file 123 of entry responding to
|
---|
7 | ; GMRCOC = order control to put into segment
|
---|
8 | ; GMRCOS = HL7 encoded order status to put in message
|
---|
9 | ;
|
---|
10 | ; Output:
|
---|
11 | ; ORC segment to use in response message
|
---|
12 | ;
|
---|
13 | N GMRCPCS,SITE
|
---|
14 | S GMRCPCS(1)=GMRCOC
|
---|
15 | S GMRCPCS(2)=$P(^GMR(123,GMRCO,0),U,22)_U_$$STA^XUAF4($P(^(0),U,23))_"^GMRCIFR"
|
---|
16 | S GMRCPCS(3)=GMRCO_U_$$STA^XUAF4($$KSP^XUPARAM("INST"))_"^GMRCIFC"
|
---|
17 | S GMRCPCS(5)=$G(GMRCOS)
|
---|
18 | S GMRCPCS(17)=$$STA^XUAF4($$KSP^XUPARAM("INST"))
|
---|
19 | Q $$BUILD^GMRCISEG("ORC",.GMRCPCS)
|
---|
20 | ;
|
---|
21 | NWORC(GMRCO) ; build ORC seg for a new order
|
---|
22 | ; Input:
|
---|
23 | ; GMRCO = ien from file 123 of order to send remotely
|
---|
24 | ;
|
---|
25 | ; Output:
|
---|
26 | ; ORC segment to send with a new order to remote facility
|
---|
27 | ;
|
---|
28 | N GMRCPCS,SITE,GMRCPHN,GMRCPAG
|
---|
29 | S GMRCPCS(1)="NW"
|
---|
30 | S GMRCPCS(2)=GMRCO_U_$$STA^XUAF4($$KSP^XUPARAM("INST"))_U_"GMRCIFR"
|
---|
31 | S $P(GMRCPCS(7),U,6)=$$URG^GMRCIUTL(GMRCO)
|
---|
32 | S GMRCPCS(9)=$$FMTHL7^XLFDT(+^GMR(123,GMRCO,0))
|
---|
33 | S GMRCPCS(10)=$$HLNAME^GMRCIUTL($P($G(^GMR(123,GMRCO,40,1,0)),U,5))
|
---|
34 | S GMRCPCS(12)=$$HLNAME^GMRCIUTL($P(^GMR(123,GMRCO,0),U,14))
|
---|
35 | S GMRCPHN=$$GET1^DIQ(200,$P(^GMR(123,GMRCO,0),U,14),.132)
|
---|
36 | S GMRCPAG=$$GET1^DIQ(200,$P(^GMR(123,GMRCO,0),U,14),.138)
|
---|
37 | S GMRCPCS(14)=$$HLPHONE^HLFNC(GMRCPHN,GMRCPAG)
|
---|
38 | S GMRCPCS(15)=$$FMTHL7^XLFDT($P(^GMR(123,GMRCO,0),U,7))
|
---|
39 | I $O(^GMR(123,GMRCO,40,1)) D
|
---|
40 | . N I,ACTV S I=1
|
---|
41 | . F S I=$O(^GMR(123,GMRCO,40,I)) Q:'I S ACTV=$P(^(I,0),U,2) D
|
---|
42 | .. I ACTV'=25 Q
|
---|
43 | .. S GMRCPCS(16)="FI^FORWARD TO IFC^99GMRC"
|
---|
44 | S SITE=$$SITE^VASITE
|
---|
45 | I +SITE S GMRCPCS(17)=$P(SITE,U,3)_U_$P(SITE,U,2) ;use loc instead? ;-(
|
---|
46 | Q $$BUILD^GMRCISEG("ORC",.GMRCPCS)
|
---|
47 | OBXPD(GMRCO) ; create OBX segment for the prov. dx
|
---|
48 | ; Input:
|
---|
49 | ; GMRCO = ien from file 123 of order to send remotely
|
---|
50 | ;
|
---|
51 | ; Output:
|
---|
52 | ; OBX segment containing the Provisional Diagnosis
|
---|
53 | ;
|
---|
54 | Q:'$L($G(^GMR(123,GMRCO,30))) ""
|
---|
55 | N GMRCPCS
|
---|
56 | S GMRCPCS(1)=2,GMRCPCS(2)=$S($L($G(^GMR(123,GMRCO,30.1))):"CE",1:"TX")
|
---|
57 | S GMRCPCS(3)="^PROVISIONAL DIAGNOSIS^",GMRCPCS(4)=1
|
---|
58 | S GMRCPCS(11)="O"
|
---|
59 | I $L($G(^GMR(123,GMRCO,30.1))) D Q $$BUILD^GMRCISEG("OBX",.GMRCPCS)
|
---|
60 | . ;coded diagnosis
|
---|
61 | . S GMRCPCS(5)=$G(^GMR(123,GMRCO,30.1))_U_$G(^(30))_U_"I9C"
|
---|
62 | S GMRCPCS(5)=U_$G(^GMR(123,GMRCO,30))_U ;free text dx
|
---|
63 | Q $$BUILD^GMRCISEG("OBX",.GMRCPCS)
|
---|
64 | ;
|
---|
65 | OBR(GMRCO,GMRCACT) ; build an OBR seg for new order or resubmit
|
---|
66 | ; Input:
|
---|
67 | ; GMRCO = ien from file 123
|
---|
68 | ; GMRCACT = ien from 40 multiple of action (only on resubmit or fwd)
|
---|
69 | ;
|
---|
70 | ; Output:
|
---|
71 | ; OBR segment
|
---|
72 | ;
|
---|
73 | N GMRCPCS,GMRCROL
|
---|
74 | S GMRCPCS(1)=1
|
---|
75 | S GMRCROL=$P(^GMR(123,GMRCO,12),U,5)
|
---|
76 | I GMRCROL="P" D
|
---|
77 | . S GMRCPCS(2)=GMRCO_U_$$STA^XUAF4($$KSP^XUPARAM("INST"))_U_"GMRCIFR"
|
---|
78 | I $D(GMRCACT) D ; resubmit sends filler # too
|
---|
79 | . I GMRCROL="P" D
|
---|
80 | .. S GMRCPCS(3)=$P(^GMR(123,GMRCO,0),U,22)_U_$$STA^XUAF4($P(^(0),U,23))
|
---|
81 | .. S GMRCPCS(3)=GMRCPCS(3)_U_"GMRCIFC"
|
---|
82 | . I GMRCROL="F" D
|
---|
83 | .. S GMRCPCS(2)=$P(^GMR(123,GMRCO,0),U,22)_U_$$STA^XUAF4($P(^(0),U,23))
|
---|
84 | .. S GMRCPCS(2)=GMRCPCS(2)_U_"GMRCIFR"
|
---|
85 | .. S GMRCPCS(3)=GMRCO_U_$$STA^XUAF4($$KSP^XUPARAM("INST"))_U_"GMRCIFC"
|
---|
86 | I $D(GMRCACT),$P(^GMR(123,GMRCO,40,GMRCACT,0),U,2)=17 D
|
---|
87 | . ;FWD uses txt of current svc
|
---|
88 | . N SITE,SERVNM,SERV
|
---|
89 | . S SITE=$$STA^XUAF4($$KSP^XUPARAM("INST"))_"VA1235"
|
---|
90 | . I GMRCROL="F" S SERV=$P(^GMR(123,GMRCO,0),U,5)
|
---|
91 | . I GMRCROL="P" S SERV=$P(^GMR(123,GMRCO,40,GMRCACT,0),U,6)
|
---|
92 | . S SERVNM=$S(+SERV:$P(^GMR(123.5,SERV,0),U),1:"")
|
---|
93 | . S GMRCPCS(4)=SERV_U_SERVNM_U_SITE
|
---|
94 | I $D(GMRCACT),$P(^GMR(123,GMRCO,40,GMRCACT,0),U,2)=25 D
|
---|
95 | . ;FWD to IFC uses the FORWARDED FROM service name
|
---|
96 | . N SITE,SERVNM,SERV
|
---|
97 | . S SITE=$$STA^XUAF4($$KSP^XUPARAM("INST"))_"VA1235"
|
---|
98 | . S SERV=$P(^GMR(123,GMRCO,40,GMRCACT,0),U,6)
|
---|
99 | . I '+SERV Q
|
---|
100 | . S SERVNM=$P(^GMR(123.5,SERV,0),U)
|
---|
101 | . S GMRCPCS(4)=SERV_U_SERVNM_U_SITE
|
---|
102 | I '$D(GMRCPCS(4)) D
|
---|
103 | . S GMRCPCS(4)=$$CODEOI^GMRCIUTL(GMRCO) ;get remote service or proc
|
---|
104 | I $D(GMRCACT) D ;resubmit or fwd so use activity fields for msg
|
---|
105 | . S GMRCPCS(6)=$$FMTHL7^XLFDT($P(^GMR(123,GMRCO,40,GMRCACT,0),U,3))
|
---|
106 | . S GMRCPCS(16)=$$HLNAME^GMRCIUTL($P(^GMR(123,GMRCO,40,GMRCACT,0),U,4))
|
---|
107 | I '$D(GMRCACT) D ; new order being sent
|
---|
108 | . S GMRCPCS(6)=$$FMTHL7^XLFDT($P(^GMR(123,GMRCO,0),U,7))
|
---|
109 | . S GMRCPCS(16)=$$HLNAME^GMRCIUTL($P(^GMR(123,GMRCO,0),U,14))
|
---|
110 | S GMRCPCS(18)=$P(^GMR(123,GMRCO,0),U,18)
|
---|
111 | Q $$BUILD^GMRCISEG("OBR",.GMRCPCS)
|
---|
112 | ;
|
---|
113 | ORCTST() ;build ORC for testing imp.
|
---|
114 | ;Input:
|
---|
115 | ;
|
---|
116 | ;Output:
|
---|
117 | ; ORC segment used to test IFC implementation
|
---|
118 | ;
|
---|
119 | N GMRCPCS,SITE,GMRCRP
|
---|
120 | S GMRCPCS(1)="NW"
|
---|
121 | S GMRCPCS(2)="TST1234"_U_$$STA^XUAF4($$KSP^XUPARAM("INST"))_"^GMRCIFR"
|
---|
122 | S GMRCPCS(9)=$$FMTHL7^XLFDT($$NOW^XLFDT)
|
---|
123 | S GMRCPCS(10)="PUBLIC^JOHN^Q"
|
---|
124 | S GMRCPCS(16)="T^TESTING^99GMRC"
|
---|
125 | Q $$BUILD^GMRCISEG("ORC",.GMRCPCS)
|
---|
126 | ;
|
---|
127 | ;
|
---|
128 | OBRTST(GMRCOI,GMRCTYP) ; build OBR seg for testing imp.
|
---|
129 | ; Input:
|
---|
130 | ; GMRCOI = ien from file 123.5 or 123.3
|
---|
131 | ; GMRCTYP = "P" or "C" (procedure or consult service)
|
---|
132 | ;
|
---|
133 | ; Output:
|
---|
134 | ; OBR segment used to test implementation
|
---|
135 | ;
|
---|
136 | N GMRCPCS,SITE
|
---|
137 | S SITE=$$STA^XUAF4($$KSP^XUPARAM("INST"))
|
---|
138 | S GMRCPCS(1)=1
|
---|
139 | S GMRCPCS(2)="TST1234"_U_SITE_"^GMRCIFR"
|
---|
140 | I GMRCTYP="C" D
|
---|
141 | . N SERV
|
---|
142 | . S SERV=$P(^GMR(123.5,GMRCOI,"IFC"),U,2)
|
---|
143 | . S GMRCPCS(4)=GMRCOI_U_SERV_U_SITE_"VA1235"
|
---|
144 | I GMRCTYP="P" D
|
---|
145 | . N PROC
|
---|
146 | . S PROC=$P(^GMR(123.3,GMRCOI,"IFC"),U,2)
|
---|
147 | . S GMRCPCS(4)=GMRCOI_U_PROC_U_SITE_"VA1233"
|
---|
148 | Q $$BUILD^GMRCISEG("OBR",.GMRCPCS)
|
---|
149 | ;
|
---|