Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: GMRCISG1

GMRCISG1.m

Go to the documentation of this file.
  1. GMRCISG1 ;SLC/JFR - BUILD IFC HL7 SEGMENTS CONT'D ;10/31/01 09:00
  1. ;;3.0;CONSULT/REQUEST TRACKING;**22**;DEC 27, 1997
  1. Q ;can't start here
  1. ORCRESP(GMRCO,GMRCOC,GMRCOS) ;build ORC for app ACK msgs
  1. ; Input:
  1. ; GMRCO = ien from file 123 of entry responding to
  1. ; GMRCOC = order control to put into segment
  1. ; GMRCOS = HL7 encoded order status to put in message
  1. ;
  1. ; Output:
  1. ; ORC segment to use in response message
  1. ;
  1. N GMRCPCS,SITE
  1. S GMRCPCS(1)=GMRCOC
  1. S GMRCPCS(2)=$P(^GMR(123,GMRCO,0),U,22)_U_$$STA^XUAF4($P(^(0),U,23))_"^GMRCIFR"
  1. S GMRCPCS(3)=GMRCO_U_$$STA^XUAF4($$KSP^XUPARAM("INST"))_"^GMRCIFC"
  1. S GMRCPCS(5)=$G(GMRCOS)
  1. S GMRCPCS(17)=$$STA^XUAF4($$KSP^XUPARAM("INST"))
  1. Q $$BUILD^GMRCISEG("ORC",.GMRCPCS)
  1. ;
  1. NWORC(GMRCO) ; build ORC seg for a new order
  1. ; Input:
  1. ; GMRCO = ien from file 123 of order to send remotely
  1. ;
  1. ; Output:
  1. ; ORC segment to send with a new order to remote facility
  1. ;
  1. N GMRCPCS,SITE,GMRCPHN,GMRCPAG
  1. S GMRCPCS(1)="NW"
  1. S GMRCPCS(2)=GMRCO_U_$$STA^XUAF4($$KSP^XUPARAM("INST"))_U_"GMRCIFR"
  1. S $P(GMRCPCS(7),U,6)=$$URG^GMRCIUTL(GMRCO)
  1. S GMRCPCS(9)=$$FMTHL7^XLFDT(+^GMR(123,GMRCO,0))
  1. S GMRCPCS(10)=$$HLNAME^GMRCIUTL($P($G(^GMR(123,GMRCO,40,1,0)),U,5))
  1. S GMRCPCS(12)=$$HLNAME^GMRCIUTL($P(^GMR(123,GMRCO,0),U,14))
  1. S GMRCPHN=$$GET1^DIQ(200,$P(^GMR(123,GMRCO,0),U,14),.132)
  1. S GMRCPAG=$$GET1^DIQ(200,$P(^GMR(123,GMRCO,0),U,14),.138)
  1. S GMRCPCS(14)=$$HLPHONE^HLFNC(GMRCPHN,GMRCPAG)
  1. S GMRCPCS(15)=$$FMTHL7^XLFDT($P(^GMR(123,GMRCO,0),U,7))
  1. I $O(^GMR(123,GMRCO,40,1)) D
  1. . N I,ACTV S I=1
  1. . F S I=$O(^GMR(123,GMRCO,40,I)) Q:'I S ACTV=$P(^(I,0),U,2) D
  1. .. I ACTV'=25 Q
  1. .. S GMRCPCS(16)="FI^FORWARD TO IFC^99GMRC"
  1. S SITE=$$SITE^VASITE
  1. I +SITE S GMRCPCS(17)=$P(SITE,U,3)_U_$P(SITE,U,2) ;use loc instead? ;-(
  1. Q $$BUILD^GMRCISEG("ORC",.GMRCPCS)
  1. OBXPD(GMRCO) ; create OBX segment for the prov. dx
  1. ; Input:
  1. ; GMRCO = ien from file 123 of order to send remotely
  1. ;
  1. ; Output:
  1. ; OBX segment containing the Provisional Diagnosis
  1. ;
  1. Q:'$L($G(^GMR(123,GMRCO,30))) ""
  1. N GMRCPCS
  1. S GMRCPCS(1)=2,GMRCPCS(2)=$S($L($G(^GMR(123,GMRCO,30.1))):"CE",1:"TX")
  1. S GMRCPCS(3)="^PROVISIONAL DIAGNOSIS^",GMRCPCS(4)=1
  1. S GMRCPCS(11)="O"
  1. I $L($G(^GMR(123,GMRCO,30.1))) D Q $$BUILD^GMRCISEG("OBX",.GMRCPCS)
  1. . ;coded diagnosis
  1. . S GMRCPCS(5)=$G(^GMR(123,GMRCO,30.1))_U_$G(^(30))_U_"I9C"
  1. S GMRCPCS(5)=U_$G(^GMR(123,GMRCO,30))_U ;free text dx
  1. Q $$BUILD^GMRCISEG("OBX",.GMRCPCS)
  1. ;
  1. OBR(GMRCO,GMRCACT) ; build an OBR seg for new order or resubmit
  1. ; Input:
  1. ; GMRCO = ien from file 123
  1. ; GMRCACT = ien from 40 multiple of action (only on resubmit or fwd)
  1. ;
  1. ; Output:
  1. ; OBR segment
  1. ;
  1. N GMRCPCS,GMRCROL
  1. S GMRCPCS(1)=1
  1. S GMRCROL=$P(^GMR(123,GMRCO,12),U,5)
  1. I GMRCROL="P" D
  1. . S GMRCPCS(2)=GMRCO_U_$$STA^XUAF4($$KSP^XUPARAM("INST"))_U_"GMRCIFR"
  1. I $D(GMRCACT) D ; resubmit sends filler # too
  1. . I GMRCROL="P" D
  1. .. S GMRCPCS(3)=$P(^GMR(123,GMRCO,0),U,22)_U_$$STA^XUAF4($P(^(0),U,23))
  1. .. S GMRCPCS(3)=GMRCPCS(3)_U_"GMRCIFC"
  1. . I GMRCROL="F" D
  1. .. S GMRCPCS(2)=$P(^GMR(123,GMRCO,0),U,22)_U_$$STA^XUAF4($P(^(0),U,23))
  1. .. S GMRCPCS(2)=GMRCPCS(2)_U_"GMRCIFR"
  1. .. S GMRCPCS(3)=GMRCO_U_$$STA^XUAF4($$KSP^XUPARAM("INST"))_U_"GMRCIFC"
  1. I $D(GMRCACT),$P(^GMR(123,GMRCO,40,GMRCACT,0),U,2)=17 D
  1. . ;FWD uses txt of current svc
  1. . N SITE,SERVNM,SERV
  1. . S SITE=$$STA^XUAF4($$KSP^XUPARAM("INST"))_"VA1235"
  1. . I GMRCROL="F" S SERV=$P(^GMR(123,GMRCO,0),U,5)
  1. . I GMRCROL="P" S SERV=$P(^GMR(123,GMRCO,40,GMRCACT,0),U,6)
  1. . S SERVNM=$S(+SERV:$P(^GMR(123.5,SERV,0),U),1:"")
  1. . S GMRCPCS(4)=SERV_U_SERVNM_U_SITE
  1. I $D(GMRCACT),$P(^GMR(123,GMRCO,40,GMRCACT,0),U,2)=25 D
  1. . ;FWD to IFC uses the FORWARDED FROM service name
  1. . N SITE,SERVNM,SERV
  1. . S SITE=$$STA^XUAF4($$KSP^XUPARAM("INST"))_"VA1235"
  1. . S SERV=$P(^GMR(123,GMRCO,40,GMRCACT,0),U,6)
  1. . I '+SERV Q
  1. . S SERVNM=$P(^GMR(123.5,SERV,0),U)
  1. . S GMRCPCS(4)=SERV_U_SERVNM_U_SITE
  1. I '$D(GMRCPCS(4)) D
  1. . S GMRCPCS(4)=$$CODEOI^GMRCIUTL(GMRCO) ;get remote service or proc
  1. I $D(GMRCACT) D ;resubmit or fwd so use activity fields for msg
  1. . S GMRCPCS(6)=$$FMTHL7^XLFDT($P(^GMR(123,GMRCO,40,GMRCACT,0),U,3))
  1. . S GMRCPCS(16)=$$HLNAME^GMRCIUTL($P(^GMR(123,GMRCO,40,GMRCACT,0),U,4))
  1. I '$D(GMRCACT) D ; new order being sent
  1. . S GMRCPCS(6)=$$FMTHL7^XLFDT($P(^GMR(123,GMRCO,0),U,7))
  1. . S GMRCPCS(16)=$$HLNAME^GMRCIUTL($P(^GMR(123,GMRCO,0),U,14))
  1. S GMRCPCS(18)=$P(^GMR(123,GMRCO,0),U,18)
  1. Q $$BUILD^GMRCISEG("OBR",.GMRCPCS)
  1. ;
  1. ORCTST() ;build ORC for testing imp.
  1. ;Input:
  1. ;
  1. ;Output:
  1. ; ORC segment used to test IFC implementation
  1. ;
  1. N GMRCPCS,SITE,GMRCRP
  1. S GMRCPCS(1)="NW"
  1. S GMRCPCS(2)="TST1234"_U_$$STA^XUAF4($$KSP^XUPARAM("INST"))_"^GMRCIFR"
  1. S GMRCPCS(9)=$$FMTHL7^XLFDT($$NOW^XLFDT)
  1. S GMRCPCS(10)="PUBLIC^JOHN^Q"
  1. S GMRCPCS(16)="T^TESTING^99GMRC"
  1. Q $$BUILD^GMRCISEG("ORC",.GMRCPCS)
  1. ;
  1. ;
  1. OBRTST(GMRCOI,GMRCTYP) ; build OBR seg for testing imp.
  1. ; Input:
  1. ; GMRCOI = ien from file 123.5 or 123.3
  1. ; GMRCTYP = "P" or "C" (procedure or consult service)
  1. ;
  1. ; Output:
  1. ; OBR segment used to test implementation
  1. ;
  1. N GMRCPCS,SITE
  1. S SITE=$$STA^XUAF4($$KSP^XUPARAM("INST"))
  1. S GMRCPCS(1)=1
  1. S GMRCPCS(2)="TST1234"_U_SITE_"^GMRCIFR"
  1. I GMRCTYP="C" D
  1. . N SERV
  1. . S SERV=$P(^GMR(123.5,GMRCOI,"IFC"),U,2)
  1. . S GMRCPCS(4)=GMRCOI_U_SERV_U_SITE_"VA1235"
  1. I GMRCTYP="P" D
  1. . N PROC
  1. . S PROC=$P(^GMR(123.3,GMRCOI,"IFC"),U,2)
  1. . S GMRCPCS(4)=GMRCOI_U_PROC_U_SITE_"VA1233"
  1. Q $$BUILD^GMRCISEG("OBR",.GMRCPCS)
  1. ;