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

INHUT.m

Go to the documentation of this file.
  1. INHUT ; FRW ; 7 May 99 11:24; HL7 utilities
  1. ;;3.01;BHL IHS Interfaces with GIS;**16**;JUL 01, 2001
  1. ;COPYRIGHT 1991-2000 SAIC
  1. ;
  1. ;All linetags in this program are supported and may be called
  1. ;by aapplication software
  1. ;
  1. COMP() ;EP - Return HL7 component separator
  1. Q:$L($G(INSUBDEL)) INSUBDEL
  1. Q:$L($G(SUBDELIM)) SUBDELIM
  1. ;Q "\" orig
  1. Q $S($G(BHLMIEN):$E($G(^INTHL7M(BHLMIEN,"EC")),1,1),1:"^") ;cmi/maw md
  1. ;
  1. FIELD() ;EP - Return HL7 field separator
  1. Q:$L($G(INDELIM)) INDELIM
  1. Q:$L($G(DELIM)) DELIM
  1. ;Q "^" orig
  1. Q $S($G(BHLMIEN):$G(^INTHL7M(BHLMIEN,"FS")),1:"|") ;cmi/maw mod
  1. ;
  1. SUBCOMP() ;EP - Subcomponent separator
  1. Q:$L($G(INSUBCOM)) INSUBCOM
  1. ;Q "&" orig
  1. Q $S($G(BHLMIEN):$E($G(^INTHL7M(BHLMIEN,"EC")),3,3),1:"\") ;cmi/maw md
  1. ;
  1. REP() ;EP - Repetition separator
  1. ;Q "|" orig
  1. Q $S($G(BHLMIEN):$E($G(^INTHL7M(BHLMIEN,"EC")),2,2),1:"~") ;cmi/maw md
  1. ;
  1. ESC() ;EP - Escape Character
  1. ;Q "~" orig
  1. Q $S($G(BHLMIEN):$E($G(^INTHL7M(BHLMIEN,"EC")),4,4),1:"&") ;cmi/maw md
  1. Q
  1. ;
  1. CE(INTCE,FILE,CODE,INDELIMS,INENC,INDIR) ;Entry point to transform to coded entry data type
  1. ;INPUT:
  1. ; INTCE - ien of coded entry in format ien or ien ; file ; coding system
  1. ; FILE - File number in format NN or global ref in format ^GL(
  1. ; CODE - Coding system
  1. ; INDELIMS - Delimeter values
  1. ; INENC - 0 Don't encode, 1 encode
  1. ; INDIR - O Outbound, I Inbound
  1. ;OUTPUT:
  1. ; ien\value\coding system
  1. ; note: the actual delimiter may not be "\"
  1. ;
  1. Q $$CE^INHUT1(.INTCE,.FILE,.CODE,.INDELIMS,.INENC,.INDIR)
  1. ;
  1. CM(INTCE,FILE,CODE,INDELIMS,INENC,INDIR) ;Entry point to transform to composite data type
  1. ;INPUT: same as CE module
  1. ;OUTPUT:
  1. ; internal value (i.e. .001 field) \ external value (i.e. .01 field)
  1. ;
  1. Q $$CM^INHUT1($G(INTCE),$G(FILE),$G(CODE),.INDELIMS,.INENC,.INDIR)
  1. ;
  1. CN(INTCE,FILE,CODE,INDELIMS,INENC,INDIR) ;Entry point to transform to composite person name data type
  1. ;INPUT: same as CE module
  1. ;OUTPUT:
  1. ; internal value (i.e. .001 field) \ formatted person name
  1. ;
  1. Q $$CN^INHUT1($G(INTCE),$G(FILE),$G(CODE),.INDELIMS,.INENC,.INDIR)
  1. ;
  1. PN(NAME,INDELIMS,INENC,INDIR) ;Transform person name to HL7 formatted person name
  1. ;INPUT:
  1. ; NAME - name in format LAST,FIRST MI
  1. ; INDELIMS - Delimeter values
  1. ; INENC - 0 Don't encode, 1 encode
  1. ; INDIR - O Outbound, I Inbound
  1. ;OUTPUT:
  1. ; function - name in format LAST\FIRST\MI
  1. ;
  1. Q $$PN^INHUT1(NAME,.INDELIMS,.INENC,.INDIR)
  1. ;
  1. HLPN(NAME,COMP,INDELIMS,INENC,INDIR) ;EP - Transform HL7 formatted person name to person name
  1. ;INPUT:
  1. ; NAME - name in format LAST\FIRST\MI\SUFFIX
  1. ; COMP - HL7 component seperator
  1. ; INDELIMS - Delimeter values
  1. ; INENC - 0 Don't encode, 1 encode
  1. ; INDIR - I Inbound
  1. ;OUTPUT:
  1. ; function - name in format LAST,FIRST MI SU
  1. ;
  1. Q $$HLPN^INHUT1(NAME,$G(COMP),.INDELIMS,.INENC,.INDIR)
  1. ;
  1. DATE(X,TS) ;Transform fileman date/time to HL7 date/time stamp
  1. ;INPUT:
  1. ; X - date in any fileman or external format
  1. ; TS - include time [ 1 - yes ; 0 - no (default) ]
  1. ;OUPUT:
  1. ; function - date/time in HL7 format
  1. ;
  1. Q:$G(TS) $$TS^INHUT1(X)
  1. Q $$DT^INHUT1(X)
  1. ;
  1. HDATE(X,TS,VA) ;EP - Transform HL7 date/time format to internal fileman format
  1. ;INPUT:
  1. ; X - date/time in HL7 format
  1. ; TS - control variable - similiar to %DT
  1. ; used as %DT when validating data
  1. ; TS [ "T" allow time
  1. ; TS [ "S" allow seconds
  1. ; VA - validate data ( 1 - yes ; 0 - no )
  1. ;OUPUT:
  1. ; function - date/time in fileman format
  1. ; X - same as function (pass by ref)
  1. ; VA - is data valid (pbr) ( 1 - valid ; 0 - invalid )
  1. ;
  1. Q $$HDT^INHUT1(.X,.TS,.VA)
  1. ;
  1. CL(X,INDELIMS,INENC,INDIR) ;Transform hospital location to coded location data type
  1. ;INPUT:
  1. ; X - hospital location ien _ ";" _ division ien (opt.)
  1. ; INDELIMS - Delimeter values
  1. ; INENC - 0 Don't encode, 1 encode
  1. ; INDIR - O Outbound, I Inbound
  1. ;OUTPUT:
  1. ; function - location and division in CE format
  1. ;
  1. Q $$CL^INHUT1(X,.INDELIMS,.INENC,.INDIR)
  1. ;
  1. CC(X,INDELIMS,INENC,INDIR) ;Transform MEPRS to charge code data type
  1. ;INPUT:
  1. ; X - MEPRS iend _ ";" _ charge amount (opt.)
  1. ; INDELIMS - Delimeter values
  1. ; INENC - 0 Don't encode, 1 encode
  1. ; INDIR - O Outbound, I Inbound
  1. ;OUTPUT:
  1. ; function - charge code \ MEPRS ien \ MEPRS code \ 99MEP
  1. ;
  1. Q $$CC^INHUT1(X,.INDELIMS,.INENC,.INDIR)
  1. ;
  1. CRB(X,INDELIMS,INENC,INDIR) ;Transform room-bed & location code room-bed data type
  1. ;INPUT:
  1. ; X -> room-bed (opt.) _ ";" _ hos loc ien (opt.)
  1. ; INDELIMS - Delimeter values
  1. ; INENC - 0 Don't encode, 1 encode
  1. ; INDIR - O Outbound, I Inbound
  1. ;
  1. ;OUTPUT:
  1. ; function - ward location (CE) \ Room-Bed \ \ MTF Code
  1. ;
  1. Q $$CRB^INHUT1($G(X),.INDELIMS,.INENC,.INDIR)
  1. ;
  1. RCVSCRN(INSRCTL,INSRDATA,INA,INDA) ; Default Inbound Receiver screen.
  1. ; Called by: Receiver SRMC code for inbound BPC, Dest or TT entries.
  1. ; D RCVSCRN^INHUT(.INSRCTL,.INSRDATA,.INA,.INDA)
  1. ; See called routine for comments.
  1. D RCVSCRN^INHUT5(.INSRCTL,.INSRDATA,.INA,.INDA)
  1. Q
  1. ;
  1. LOG(INFN,INIEN,INSRMC,INUIF,INLOG) ; Log error message in UIF or IEF
  1. D LOG^INHUT6(.INFN,.INIEN,.INSRMC,.INUIF,.INLOG)
  1. Q
  1. ;
  1. GETDEST(INACKTT,INA,INACKDST,INACKUIF) ; $$function
  1. ; Called by: SCRIPT GENERATOR MESSAGE file, Outgoing Initial MUMPS
  1. ; Code field, S INDEST=$$GETDEST^INHUT(INTT,.INA,INDEST)
  1. ; See called routine for comments.
  1. Q $$GETDEST^INHUT7(INACKTT,.INA,$G(INACKDST),$G(INACKUIF))
  1. ;
  1. GETSEG(INUIF,INSEGNM,INSTANCE) ; Get an HL7 Segment
  1. Q $$GETSEG^INHUT2(.INUIF,.INSEGNM,.INSTANCE)
  1. ;
  1. PARSEG(INSRCTL,INSEGNM) ; Parse an HL7 segment (from GETSEG.)
  1. D PARSEG^INHUT2(.INSRCTL,.INSEGNM)
  1. Q
  1. ;
  1. SUBESC(INREC,INDEL,INB) ;Substitute escape delimeters to and from HL7
  1. ; spec
  1. ;Input:
  1. ; INREC - Portion of HL7 MSG to check
  1. ; INDEL(opt) = FSRET values - each position is critical
  1. ; ie S INDEL="^\|~&"
  1. ; or
  1. ; array of delimiters
  1. ; S INDEL("F")="^"
  1. ; S INDEL("S")="\"
  1. ; S INDEL("R")="|"
  1. ; S INDEL("E")="~"
  1. ; S INDEL("T")="&"
  1. ; INB - I inbound, O outbound
  1. ;Returns - Record with replace values
  1. Q $$SUBESC^INHUT7(INREC,.INDEL,.INB)
  1. CNVDLM(INREC) ;Convert delimeters to HL7 specifications if in record
  1. ; Input: INREC - Portion of HL7 MSG to check
  1. ; Returns - Record with replace values
  1. ;
  1. Q $$CNVDLM^INHUT7(INREC)
  1. ;
  1. BPSTAT(INBKGNM,INSRVR) ;-determine status of GIS background process, given name
  1. ;Input: INBKGNM - name of background process to determine status
  1. ; INSRVR - server number (not currently supported)
  1. ;Output: Status message string of given background process name
  1. ;
  1. Q $$BPSTAT^INHUT2($G(INBKGNM),$G(INSRVR))
  1. ;
  1. TIMEIO(X,INP,INCV,IN24,INOUT) ;Convert time to input or output
  1. ;Input:
  1. ; X - date/time
  1. ; INP(opt) - Precision Y=year, L=month, D=day, H=hour, M=minute,S=second
  1. ; 1=Auto precision
  1. ; INCV(opt) - 1 convert, 0 don't convert, 2 convert no 2nd component
  1. ; 3 convert 2.3
  1. ; outbound - INOUT flag set to 0
  1. ; IN24(opt) - 0 do nothing, 1 - add 1 day set time to 0000
  1. ; 2 - subtract one second, 3 - subtract one minute
  1. ; inbound - INOUT flag set to 1
  1. ; 0 - do nothing, 1 - subtract 1 day set time to 2400
  1. ; 2 - add one second, 3 - add one minute
  1. ; INOUT - 0 or null outbound - converts from fileman to HL7
  1. ; 1 inbound - converts from HL7 to fileman
  1. ;Output:
  1. ; INP - Precision
  1. ;
  1. ;External Input:
  1. ; (opt) INSUBDEL - Sub delimeter
  1. ;Returns:
  1. ; function date/time in converted format
  1. ;
  1. ;Output
  1. ; INP (val) - Precision
  1. Q $$TIMEIO^INHUT10(X,.INP,INCV,IN24,INOUT)
  1. MRGINA(INOA,INA) ;Merge INOA array into INA array
  1. ; Used by Query Response capability
  1. ; Input: INA = Application team INA array
  1. ; INOA = Values used by GIS for processing responses
  1. ; Output: Consolidated INA array used for processing responses
  1. M INA=INOA
  1. Q
  1. APPACK(INUIF,INAKMES,INASTAT,INERMSG) ;User API to ACKLOG^INHU
  1. ;This routine is documented in APPACK^INHUT7
  1. D APPACK^INHUT7(INUIF,$G(INAKMES),$G(INASTAT),$G(INERMSG))
  1. Q
  1. ;
  1. TASKNUM(INSEQ) ; return task number for a given seq. #
  1. ;
  1. Q $$TASKNUM^INTQRY($G(INSEQ))