[613] | 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 | ;
|
---|