- GMRCIUTL ;SLC/JFR - UTILITIES FOR INTER-FACILITY CONSULTS ;11/26/01 15:34
- ;;3.0;CONSULT/REQUEST TRACKING;**22,58**;DEC 27, 1997;Build 4
- ;;Per VHA Directive 2004-038, this routine should not be modified.
- ;
- Q ;don't start at the top
- ;
- DIV(LOC) ; get the division from a hospital location
- ; Input -- LOC HOSPITAL LOCATION file (#44) IEN
- ; Output -- INSTITUTION file (#4) IEN^INSTITUTION file (#4) NAME
- ;
- N GMRCHL,GMRCSTN,GMRCDIV
- S GMRCHL=$P($G(^SC(+LOC,0)),U,15)
- I +GMRCHL D
- . S GMRCSTN=$$SITE^VASITE(,GMRCHL)
- . I $P(GMRCSTN,U)>0,($P(GMRCSTN,U,2)]"") D
- . . S GMRCDIV=$P(GMRCSTN,U)_U_$P(GMRCSTN,U,2)
- I '$G(GMRCDIV) D
- . S GMRCDIV=+$G(DUZ(2))_U_$P($$NS^XUAF4(+$G(DUZ(2))),U)
- Q GMRCDIV
- ;
- HLNAME(GMRCWHO) ;HL7 format a name from a pointer to 200
- Q:'$D(^VA(200,+GMRCWHO,0)) ""
- N GMRC
- S GMRC("FILE")=200
- S GMRC("IENS")=GMRCWHO
- S GMRC("FIELD")=.01
- Q $$HLNAME^XLFNAME(.GMRC,"S")
- ;
- UNHLNAME(GMRCNM,GMRCNMC,STD,DEL) ;return regular name from HL7 name
- ;Input:
- ; GMRCNM = HL7 formatted name from a message
- ; GMRCNMC = array to retun name components in (by reference)
- ; STD = 1 or 0; 1 = return name given middle family suffix
- ; DEL = delimiting character separating name components
- ;
- ;Output:
- ; GMRCNMC=DREW,NANCY M III MD or NANCY M DREW III MD
- ; GMRCNMC("FAMILY")=DREW
- ; GMRCNMC("GIVEN")=NANCY
- ; GMRCNMC("MIDDLE")=M
- ; GMRCNM("SUFFIX")=III MD
- ;
- I '$D(DEL) S DEL=U
- S GMRCNMC=GMRCNM
- S GMRCNMC=$$FMNAME^XLFNAME(.GMRCNMC,"CS")
- I $G(STD) S GMRCNMC=$$NAMEFMT^XLFNAME(.GMRCNMC,"G","Dc")
- Q
- ;
- TRIMWP(ARRAY,PIECE) ;trim OBX or NTE segments so that only comment remains
- ; Input:
- ; ARRAY = the array in which the segments are contained
- ; ex. ^TMP("GMRCIF",541083753,"OBX",3,3)=3|TX|^COMMENTS^|3|text "
- ; PIECE = the piece in the array where the text lives
- ;
- ; Output:
- ; trimmed array
- ; ex. ^TMP("GMRCIF",541083753,"OBX",3,3)="text"
- ;
- N I S I=0
- F S I=$O(@(ARRAY)@(I)) Q:'I D
- . S @(ARRAY)@(I)=$P(@(ARRAY)@(I),"|",PIECE)
- Q
- ;
- VALMSG(GMRCPID,GMRCORC) ; determine if message is valid
- ;Input:
- ; GMRCPID = PID segment from an IFC HL7 message
- ; GMRCORC = ORC segment from an IFC HL7 message
- ;
- ;Output:
- ; 1 = message passes screening on patient, institution and ien
- ; 0^msg = message failed screening
- ; possible msg values:
- ;
- ;
- ;
- N GMRCDA,GMRCINST
- Q
- ;
- URG(GMRCO) ;return urgency code to send in HL7 msg
- ; Input:
- ; GMRCO = consult ien from file 123
- ;
- ; Output:
- ; S = stat
- ; R = routine
- ; ZT = today
- ; Z24 = within 24 hours
- ; Z48 = within 48 hours
- ; Z72 = within 72 hours
- ; ZW = within 1 week
- ; ZM = within 1 month
- ; ZNA = next available
- ; ZE = emergency
- ;
- N URG,PROT,ORURG
- S PROT=$P(^GMR(123,GMRCO,0),U,9)
- S URG=$P($G(^ORD(101,+PROT,0)),U),URG=$P(URG," - ",2)
- I '$L(URG) Q ""
- S ORURG=$S(URG="EMERGENCY":"STAT",URG="NOW":"STAT",URG="OUTPATIENT":"ROUTINE",1:URG)
- S ORURG=$O(^ORD(101.42,"B",ORURG,0))
- I '+ORURG Q ""
- Q $P(^ORD(101.42,ORURG,0),"^",2)
- GETSERV(GMRCSRV) ;return local service from IFC service in HL7 msg
- ;Input:
- ; GMRCSRV = OBR-4 (e.g. 4^CARDIOLOGY^578VA1235)
- ;
- ;Output:
- ; ien of local service
- N SERV,SENDER,ERROR
- S SERV=$$FIND1^DIC(123.5,"","X",$P(GMRCSRV,U,2))
- I 'SERV S ERROR="-1^ERROR IN SERVICE NAME^701"
- I '$D(ERROR) D
- . S SENDER=$P(GMRCSRV,U,3)
- . S SENDER=+$$IEN^XUAF4($P(SENDER,"VA1235"))
- I '$D(ERROR) D
- . I $O(^GMR(123.5,SERV,"IFCS","B",SENDER,0)) Q
- . S ERROR="-1^IMPROPER SENDING FACILITY^301"
- I '$D(ERROR) D
- . I $P($G(^GMR(123.5,SERV,0)),U,2)'=9 Q
- . S ERROR="-1^SERVICE IS DISABLED^702"
- Q $S($D(ERROR):ERROR,1:SERV)
- ;
- GETPROC(GMRCSID) ;return procedure and sercvice ordered by IFC
- ;Input:
- ; GMRCSID =OBR-4 from IFC msg (e.g. "31^EKG^578VA1233" )
- ;
- ;Output:
- ; string in format local_proc_ien^service_ien_to perform
- ;
- N GMRCSS,GMRCPR,SENDER,ERROR
- S GMRCPR=$$FIND1^DIC(123.3,"","X",$P(GMRCSID,U,2))
- I 'GMRCPR S ERROR="-1^ERROR IN PROCEDURE NAME^501"
- I '$D(ERROR) D
- . S SENDER=$P(GMRCSID,U,3)
- . S SENDER=+$$IEN^XUAF4($P(SENDER,"VA1233"))
- I '$D(ERROR) D
- . I $O(^GMR(123.3,GMRCPR,"IFCS","B",SENDER,0)) Q
- . S ERROR="-1^IMPROPER SENDING FACILITY^401"
- I '$D(ERROR) D
- . D GETSVC^GMRCPR0(.GMRCSS,GMRCPR)
- . I GMRCSS>1 S ERROR="-1^MULTIPLE SERVICES DEFINED^601" Q
- . S GMRCSS=+GMRCSS(1)
- I '$D(ERROR) D
- . I $P($G(^GMR(123.3,GMRCPR,0)),U,2)'=1 Q
- . S ERROR="-1^PROCEDURE IS INACTIVE^703"
- Q $S($D(ERROR):ERROR,1:GMRCPR_U_GMRCSS)
- CODEOI(GMRCDA) ; look at ordered procedure or service and code it for IFC msg
- ;Input:
- ; GMRCDA = ien from file 123 of consult or procedure to send as IFC
- ;
- ;Output:
- ; consult: svc_ien^remote_service_name^station#_VA1235
- ; proc: proc_ien^remote_proc_name^station#_VA1233
- ;
- N GMRCPR,GMRCSS,GMRCSIT,GMRCOI
- S GMRCSIT=$$STA^XUAF4($$KSP^XUPARAM("INST"))
- I +$P(^GMR(123,GMRCDA,0),U,8) D ; it's a procedure
- . S GMRCPR=+$P(^GMR(123,GMRCDA,0),U,8)
- . S GMRCOI=GMRCPR_U_$P(^GMR(123.3,GMRCPR,"IFC"),U,2)_U_GMRCSIT_"VA1233"
- I '$D(GMRCOI) D ; it's a consult
- . S GMRCSS=$P(^GMR(123,GMRCDA,0),U,5)
- . S GMRCOI=GMRCSS_U_$P(^GMR(123.5,GMRCSS,"IFC"),U,2)_U_GMRCSIT_"VA1235"
- Q GMRCOI
- ;
- RESP(GMRCAC,GMRCMID,GMRCOC,GMRCDA,GMRCERR) ;build and send appl ACK/NAK
- ; Input:
- ; GMRCAC = acknowledgement code (AA or AR)
- ; GMRCMID = message id from original msg
- ; GMRCOC = order control from original msg ORC
- ; GMRCDA = ien of consult being worked on
- ; GMRCERR = only defined if an error is found
- ;
- S HLA("HLA",1)=$$MSA^GMRCISEG(GMRCAC,GMRCMID,$G(GMRCERR))
- I $D(GMRCOC) D
- . I GMRCOC="NW" S HLA("HLA",2)=$$ORCRESP^GMRCISG1(GMRCDA,"OK","IP")
- Q
- ;
- LOGMSG(GMRCO,GMRCACT,GMRCMSG,GMRCER) ;create or update IFC MESSAGE LOG entry
- ;Input:
- ; GMRC0 = ien from file 123
- ; GMRCACT = ien in 40 multiple from file 123
- ; GMRCMSG = HL7 message ID of message being sent
- ; GMRCER = error number if can't transmit immediately
- ;
- N GMRCLG,GMRCERR,FDA
- S GMRCLG=$O(^GMR(123.6,"AC",GMRCO,GMRCACT,1,0))
- I +GMRCLG D Q ; update existing incomplete record.
- . S FDA(1,123.6,GMRCLG_",",.01)=$$NOW^XLFDT
- . S FDA(1,123.6,GMRCLG_",",.03)=$G(GMRCMSG)
- . S FDA(1,123.6,GMRCLG_",",.07)=$P(^GMR(123.6,GMRCLG,0),U,7)+1
- . I $G(GMRCER) S FDA(1,123.6,GMRCLG_",",.08)=GMRCER
- . D UPDATE^DIE("","FDA(1)",,"GMRCERR")
- ;
- ; create new record
- S FDA(1,123.6,"+1,",.01)=$$NOW^XLFDT
- S FDA(1,123.6,"+1,",.02)=$P(^GMR(123,GMRCO,0),U,23)
- S FDA(1,123.6,"+1,",.03)=$G(GMRCMSG)
- S FDA(1,123.6,"+1,",.04)=GMRCO
- S FDA(1,123.6,"+1,",.05)=GMRCACT
- S FDA(1,123.6,"+1,",.06)=1
- S FDA(1,123.6,"+1,",.07)=1
- I $G(GMRCER) S FDA(1,123.6,"+1,",.08)=GMRCER
- D UPDATE^DIE("","FDA(1)","GMRCLG","GMRCERR")
- Q
- ;
- ERR101 ;Unknown Consult/Procedure request
- ERR201 ;Unknown Patient
- ERR202 ;Local or unknown MPI identifiers
- ERR301 ;Service not matched to receiving facility
- ERR401 ;Procedure not matched to receiving facility
- ERR501 ;Error in procedure name
- ERR601 ;Multiple services matched to procedure
- ERR701 ;Error in Service name
- ERR702 ;Service is Disabled
- ERR703 ;Procedure is Inactive
- ERR801 ;Inappropriate action for specified request
- ERR802 ;Duplicate, activity not filed
- ERR901 ;Unable to update record successfully
- ERR902 ;Earlier pending transactions
- ERR903 ;HL Logical Link not found
- ERR904 ;VistA HL7 unable to send transaction
- GMRCIUTL ;SLC/JFR - UTILITIES FOR INTER-FACILITY CONSULTS ;11/26/01 15:34
- +1 ;;3.0;CONSULT/REQUEST TRACKING;**22,58**;DEC 27, 1997;Build 4
- +2 ;;Per VHA Directive 2004-038, this routine should not be modified.
- +3 ;
- +4 ;don't start at the top
- QUIT
- +5 ;
- DIV(LOC) ; get the division from a hospital location
- +1 ; Input -- LOC HOSPITAL LOCATION file (#44) IEN
- +2 ; Output -- INSTITUTION file (#4) IEN^INSTITUTION file (#4) NAME
- +3 ;
- +4 NEW GMRCHL,GMRCSTN,GMRCDIV
- +5 SET GMRCHL=$PIECE($GET(^SC(+LOC,0)),U,15)
- +6 IF +GMRCHL
- Begin DoDot:1
- +7 SET GMRCSTN=$$SITE^VASITE(,GMRCHL)
- +8 IF $PIECE(GMRCSTN,U)>0
- IF ($PIECE(GMRCSTN,U,2)]"")
- Begin DoDot:2
- +9 SET GMRCDIV=$PIECE(GMRCSTN,U)_U_$PIECE(GMRCSTN,U,2)
- End DoDot:2
- End DoDot:1
- +10 IF '$GET(GMRCDIV)
- Begin DoDot:1
- +11 SET GMRCDIV=+$GET(DUZ(2))_U_$PIECE($$NS^XUAF4(+$GET(DUZ(2))),U)
- End DoDot:1
- +12 QUIT GMRCDIV
- +13 ;
- HLNAME(GMRCWHO) ;HL7 format a name from a pointer to 200
- +1 IF '$DATA(^VA(200,+GMRCWHO,0))
- QUIT ""
- +2 NEW GMRC
- +3 SET GMRC("FILE")=200
- +4 SET GMRC("IENS")=GMRCWHO
- +5 SET GMRC("FIELD")=.01
- +6 QUIT $$HLNAME^XLFNAME(.GMRC,"S")
- +7 ;
- UNHLNAME(GMRCNM,GMRCNMC,STD,DEL) ;return regular name from HL7 name
- +1 ;Input:
- +2 ; GMRCNM = HL7 formatted name from a message
- +3 ; GMRCNMC = array to retun name components in (by reference)
- +4 ; STD = 1 or 0; 1 = return name given middle family suffix
- +5 ; DEL = delimiting character separating name components
- +6 ;
- +7 ;Output:
- +8 ; GMRCNMC=DREW,NANCY M III MD or NANCY M DREW III MD
- +9 ; GMRCNMC("FAMILY")=DREW
- +10 ; GMRCNMC("GIVEN")=NANCY
- +11 ; GMRCNMC("MIDDLE")=M
- +12 ; GMRCNM("SUFFIX")=III MD
- +13 ;
- +14 IF '$DATA(DEL)
- SET DEL=U
- +15 SET GMRCNMC=GMRCNM
- +16 SET GMRCNMC=$$FMNAME^XLFNAME(.GMRCNMC,"CS")
- +17 IF $GET(STD)
- SET GMRCNMC=$$NAMEFMT^XLFNAME(.GMRCNMC,"G","Dc")
- +18 QUIT
- +19 ;
- TRIMWP(ARRAY,PIECE) ;trim OBX or NTE segments so that only comment remains
- +1 ; Input:
- +2 ; ARRAY = the array in which the segments are contained
- +3 ; ex. ^TMP("GMRCIF",541083753,"OBX",3,3)=3|TX|^COMMENTS^|3|text "
- +4 ; PIECE = the piece in the array where the text lives
- +5 ;
- +6 ; Output:
- +7 ; trimmed array
- +8 ; ex. ^TMP("GMRCIF",541083753,"OBX",3,3)="text"
- +9 ;
- +10 NEW I
- SET I=0
- +11 FOR
- SET I=$ORDER(@(ARRAY)@(I))
- IF 'I
- QUIT
- Begin DoDot:1
- +12 SET @(ARRAY)@(I)=$PIECE(@(ARRAY)@(I),"|",PIECE)
- End DoDot:1
- +13 QUIT
- +14 ;
- VALMSG(GMRCPID,GMRCORC) ; determine if message is valid
- +1 ;Input:
- +2 ; GMRCPID = PID segment from an IFC HL7 message
- +3 ; GMRCORC = ORC segment from an IFC HL7 message
- +4 ;
- +5 ;Output:
- +6 ; 1 = message passes screening on patient, institution and ien
- +7 ; 0^msg = message failed screening
- +8 ; possible msg values:
- +9 ;
- +10 ;
- +11 ;
- +12 NEW GMRCDA,GMRCINST
- +13 QUIT
- +14 ;
- URG(GMRCO) ;return urgency code to send in HL7 msg
- +1 ; Input:
- +2 ; GMRCO = consult ien from file 123
- +3 ;
- +4 ; Output:
- +5 ; S = stat
- +6 ; R = routine
- +7 ; ZT = today
- +8 ; Z24 = within 24 hours
- +9 ; Z48 = within 48 hours
- +10 ; Z72 = within 72 hours
- +11 ; ZW = within 1 week
- +12 ; ZM = within 1 month
- +13 ; ZNA = next available
- +14 ; ZE = emergency
- +15 ;
- +16 NEW URG,PROT,ORURG
- +17 SET PROT=$PIECE(^GMR(123,GMRCO,0),U,9)
- +18 SET URG=$PIECE($GET(^ORD(101,+PROT,0)),U)
- SET URG=$PIECE(URG," - ",2)
- +19 IF '$LENGTH(URG)
- QUIT ""
- +20 SET ORURG=$SELECT(URG="EMERGENCY":"STAT",URG="NOW":"STAT",URG="OUTPATIENT":"ROUTINE",1:URG)
- +21 SET ORURG=$ORDER(^ORD(101.42,"B",ORURG,0))
- +22 IF '+ORURG
- QUIT ""
- +23 QUIT $PIECE(^ORD(101.42,ORURG,0),"^",2)
- GETSERV(GMRCSRV) ;return local service from IFC service in HL7 msg
- +1 ;Input:
- +2 ; GMRCSRV = OBR-4 (e.g. 4^CARDIOLOGY^578VA1235)
- +3 ;
- +4 ;Output:
- +5 ; ien of local service
- +6 NEW SERV,SENDER,ERROR
- +7 SET SERV=$$FIND1^DIC(123.5,"","X",$PIECE(GMRCSRV,U,2))
- +8 IF 'SERV
- SET ERROR="-1^ERROR IN SERVICE NAME^701"
- +9 IF '$DATA(ERROR)
- Begin DoDot:1
- +10 SET SENDER=$PIECE(GMRCSRV,U,3)
- +11 SET SENDER=+$$IEN^XUAF4($PIECE(SENDER,"VA1235"))
- End DoDot:1
- +12 IF '$DATA(ERROR)
- Begin DoDot:1
- +13 IF $ORDER(^GMR(123.5,SERV,"IFCS","B",SENDER,0))
- QUIT
- +14 SET ERROR="-1^IMPROPER SENDING FACILITY^301"
- End DoDot:1
- +15 IF '$DATA(ERROR)
- Begin DoDot:1
- +16 IF $PIECE($GET(^GMR(123.5,SERV,0)),U,2)'=9
- QUIT
- +17 SET ERROR="-1^SERVICE IS DISABLED^702"
- End DoDot:1
- +18 QUIT $SELECT($DATA(ERROR):ERROR,1:SERV)
- +19 ;
- GETPROC(GMRCSID) ;return procedure and sercvice ordered by IFC
- +1 ;Input:
- +2 ; GMRCSID =OBR-4 from IFC msg (e.g. "31^EKG^578VA1233" )
- +3 ;
- +4 ;Output:
- +5 ; string in format local_proc_ien^service_ien_to perform
- +6 ;
- +7 NEW GMRCSS,GMRCPR,SENDER,ERROR
- +8 SET GMRCPR=$$FIND1^DIC(123.3,"","X",$PIECE(GMRCSID,U,2))
- +9 IF 'GMRCPR
- SET ERROR="-1^ERROR IN PROCEDURE NAME^501"
- +10 IF '$DATA(ERROR)
- Begin DoDot:1
- +11 SET SENDER=$PIECE(GMRCSID,U,3)
- +12 SET SENDER=+$$IEN^XUAF4($PIECE(SENDER,"VA1233"))
- End DoDot:1
- +13 IF '$DATA(ERROR)
- Begin DoDot:1
- +14 IF $ORDER(^GMR(123.3,GMRCPR,"IFCS","B",SENDER,0))
- QUIT
- +15 SET ERROR="-1^IMPROPER SENDING FACILITY^401"
- End DoDot:1
- +16 IF '$DATA(ERROR)
- Begin DoDot:1
- +17 DO GETSVC^GMRCPR0(.GMRCSS,GMRCPR)
- +18 IF GMRCSS>1
- SET ERROR="-1^MULTIPLE SERVICES DEFINED^601"
- QUIT
- +19 SET GMRCSS=+GMRCSS(1)
- End DoDot:1
- +20 IF '$DATA(ERROR)
- Begin DoDot:1
- +21 IF $PIECE($GET(^GMR(123.3,GMRCPR,0)),U,2)'=1
- QUIT
- +22 SET ERROR="-1^PROCEDURE IS INACTIVE^703"
- End DoDot:1
- +23 QUIT $SELECT($DATA(ERROR):ERROR,1:GMRCPR_U_GMRCSS)
- CODEOI(GMRCDA) ; look at ordered procedure or service and code it for IFC msg
- +1 ;Input:
- +2 ; GMRCDA = ien from file 123 of consult or procedure to send as IFC
- +3 ;
- +4 ;Output:
- +5 ; consult: svc_ien^remote_service_name^station#_VA1235
- +6 ; proc: proc_ien^remote_proc_name^station#_VA1233
- +7 ;
- +8 NEW GMRCPR,GMRCSS,GMRCSIT,GMRCOI
- +9 SET GMRCSIT=$$STA^XUAF4($$KSP^XUPARAM("INST"))
- +10 ; it's a procedure
- IF +$PIECE(^GMR(123,GMRCDA,0),U,8)
- Begin DoDot:1
- +11 SET GMRCPR=+$PIECE(^GMR(123,GMRCDA,0),U,8)
- +12 SET GMRCOI=GMRCPR_U_$PIECE(^GMR(123.3,GMRCPR,"IFC"),U,2)_U_GMRCSIT_"VA1233"
- End DoDot:1
- +13 ; it's a consult
- IF '$DATA(GMRCOI)
- Begin DoDot:1
- +14 SET GMRCSS=$PIECE(^GMR(123,GMRCDA,0),U,5)
- +15 SET GMRCOI=GMRCSS_U_$PIECE(^GMR(123.5,GMRCSS,"IFC"),U,2)_U_GMRCSIT_"VA1235"
- End DoDot:1
- +16 QUIT GMRCOI
- +17 ;
- RESP(GMRCAC,GMRCMID,GMRCOC,GMRCDA,GMRCERR) ;build and send appl ACK/NAK
- +1 ; Input:
- +2 ; GMRCAC = acknowledgement code (AA or AR)
- +3 ; GMRCMID = message id from original msg
- +4 ; GMRCOC = order control from original msg ORC
- +5 ; GMRCDA = ien of consult being worked on
- +6 ; GMRCERR = only defined if an error is found
- +7 ;
- +8 SET HLA("HLA",1)=$$MSA^GMRCISEG(GMRCAC,GMRCMID,$GET(GMRCERR))
- +9 IF $DATA(GMRCOC)
- Begin DoDot:1
- +10 IF GMRCOC="NW"
- SET HLA("HLA",2)=$$ORCRESP^GMRCISG1(GMRCDA,"OK","IP")
- End DoDot:1
- +11 QUIT
- +12 ;
- LOGMSG(GMRCO,GMRCACT,GMRCMSG,GMRCER) ;create or update IFC MESSAGE LOG entry
- +1 ;Input:
- +2 ; GMRC0 = ien from file 123
- +3 ; GMRCACT = ien in 40 multiple from file 123
- +4 ; GMRCMSG = HL7 message ID of message being sent
- +5 ; GMRCER = error number if can't transmit immediately
- +6 ;
- +7 NEW GMRCLG,GMRCERR,FDA
- +8 SET GMRCLG=$ORDER(^GMR(123.6,"AC",GMRCO,GMRCACT,1,0))
- +9 ; update existing incomplete record.
- IF +GMRCLG
- Begin DoDot:1
- +10 SET FDA(1,123.6,GMRCLG_",",.01)=$$NOW^XLFDT
- +11 SET FDA(1,123.6,GMRCLG_",",.03)=$GET(GMRCMSG)
- +12 SET FDA(1,123.6,GMRCLG_",",.07)=$PIECE(^GMR(123.6,GMRCLG,0),U,7)+1
- +13 IF $GET(GMRCER)
- SET FDA(1,123.6,GMRCLG_",",.08)=GMRCER
- +14 DO UPDATE^DIE("","FDA(1)",,"GMRCERR")
- End DoDot:1
- QUIT
- +15 ;
- +16 ; create new record
- +17 SET FDA(1,123.6,"+1,",.01)=$$NOW^XLFDT
- +18 SET FDA(1,123.6,"+1,",.02)=$PIECE(^GMR(123,GMRCO,0),U,23)
- +19 SET FDA(1,123.6,"+1,",.03)=$GET(GMRCMSG)
- +20 SET FDA(1,123.6,"+1,",.04)=GMRCO
- +21 SET FDA(1,123.6,"+1,",.05)=GMRCACT
- +22 SET FDA(1,123.6,"+1,",.06)=1
- +23 SET FDA(1,123.6,"+1,",.07)=1
- +24 IF $GET(GMRCER)
- SET FDA(1,123.6,"+1,",.08)=GMRCER
- +25 DO UPDATE^DIE("","FDA(1)","GMRCLG","GMRCERR")
- +26 QUIT
- +27 ;
- ERR101 ;Unknown Consult/Procedure request
- ERR201 ;Unknown Patient
- ERR202 ;Local or unknown MPI identifiers
- ERR301 ;Service not matched to receiving facility
- ERR401 ;Procedure not matched to receiving facility
- ERR501 ;Error in procedure name
- ERR601 ;Multiple services matched to procedure
- ERR701 ;Error in Service name
- ERR702 ;Service is Disabled
- ERR703 ;Procedure is Inactive
- ERR801 ;Inappropriate action for specified request
- ERR802 ;Duplicate, activity not filed
- ERR901 ;Unable to update record successfully
- ERR902 ;Earlier pending transactions
- ERR903 ;HL Logical Link not found
- ERR904 ;VistA HL7 unable to send transaction