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

HDISVAP3.m

Go to the documentation of this file.
  1. HDISVAP3 ;BPFO/JRP - Application Programmer API(s);03/07/12 07:56
  1. ;;1.0;HEALTH DATA & INFORMATICS;**7**;Feb 22, 2005;Build 33
  1. ;
  1. ; THIS IS A CONTINUATION OF LABXCPT^HDISVAP1
  1. ;
  1. ADD(TEXT,TAGNAME,XMLDOC,XMLNODE) ;Add text to XML document
  1. NEW ESCTEXT
  1. IF (TAGNAME="") QUIT
  1. ;Check for NULL data - special denotion in XML
  1. IF (TEXT="") DO QUIT
  1. .SET @XMLDOC@(XMLNODE,0)="<"_TAGNAME_"/>"
  1. .SET XMLNODE=XMLNODE+1
  1. .QUIT
  1. ;Convert reserved XML characters to escape sequences
  1. SET ESCTEXT=$$CHARCHK^XOBVLIB(TEXT)
  1. ;Add text
  1. SET @XMLDOC@(XMLNODE,0)="<"_TAGNAME_">"_ESCTEXT_"</"_TAGNAME_">"
  1. SET XMLNODE=XMLNODE+1
  1. QUIT
  1. ;
  1. ADDBEG(TAGNAME,XMLDOC,XMLNODE) ; Add beginning tag to XML document
  1. SET @XMLDOC@(XMLNODE,0)="<"_TAGNAME_">"
  1. SET XMLNODE=XMLNODE+1
  1. QUIT
  1. ;
  1. ADDEND(TAGNAME,XMLDOC,XMLNODE) ;Add ending tag to XML document
  1. SET @XMLDOC@(XMLNODE,0)="</"_TAGNAME_">"
  1. SET XMLNODE=XMLNODE+1
  1. QUIT
  1. ;
  1. SUMADD(TEXT,SUMTXT,SUMNODE) ;Add line of text to summary data
  1. SET @SUMTXT@(SUMNODE,0)=TEXT
  1. SET SUMNODE=SUMNODE+1
  1. QUIT
  1. ;
  1. SUMADMIN(SUMTXT,XCPTTYPE,DATA,SUMNODE) ;Administrative summary text
  1. NEW TEXT
  1. SET TEXT=" "
  1. DO SUMADD(TEXT,SUMTXT,.SUMNODE)
  1. SET TEXT=" Transaction Number: "_$GET(DATA(1))
  1. DO SUMADD(TEXT,SUMTXT,.SUMNODE)
  1. SET TEXT="Exception Type Code: "_$GET(XCPTTYPE)
  1. DO SUMADD(TEXT,SUMTXT,.SUMNODE)
  1. SET TEXT=" Time Stamp: "_$GET(DATA(2))
  1. DO SUMADD(TEXT,SUMTXT,.SUMNODE)
  1. SET TEXT=" "
  1. DO SUMADD(TEXT,SUMTXT,.SUMNODE)
  1. QUIT
  1. ;
  1. SUMSNOMD(SUMTXT,DATA,SUMNODE) ;SNOMED summary text
  1. NEW TEXT
  1. SET TEXT="ID (Fac#-File#-IEN): "_$GET(DATA(1))
  1. DO SUMADD(TEXT,SUMTXT,.SUMNODE)
  1. SET TEXT=" SNOMED CT: "_$GET(DATA(5))
  1. DO SUMADD(TEXT,SUMTXT,.SUMNODE)
  1. SET TEXT=" SNOMED CT Term: "_$GET(DATA(6))
  1. DO SUMADD(TEXT,SUMTXT,.SUMNODE)
  1. SET TEXT=" Mapping Exception: "_$GET(DATA(7))
  1. DO SUMADD(TEXT,SUMTXT,.SUMNODE)
  1. SET TEXT=" Term Status: "_$GET(DATA(11))
  1. DO SUMADD(TEXT,SUMTXT,.SUMNODE)
  1. SET TEXT=" "
  1. DO SUMADD(TEXT,SUMTXT,.SUMNODE)
  1. QUIT
  1. ;
  1. SUMRFLAB(SUMTXT,DATA,SUMNODE) ;Reference lab summary text
  1. NEW TEXT
  1. SET TEXT=" Location Type Code: "_$GET(DATA(1))
  1. DO SUMADD(TEXT,SUMTXT,.SUMNODE)
  1. SET TEXT=" Location Number: "_$GET(DATA(2))
  1. DO SUMADD(TEXT,SUMTXT,.SUMNODE)
  1. SET TEXT=" Location Name: "_$GET(DATA(3))
  1. DO SUMADD(TEXT,SUMTXT,.SUMNODE)
  1. SET TEXT=" "
  1. DO SUMADD(TEXT,SUMTXT,.SUMNODE)
  1. QUIT
  1. ;
  1. SUMID(SUMTXT,SANODE) ;Add ID to list of IDs added to XML document
  1. NEW TEXT,ARRTYPE,ID
  1. SET ARRTYPE=$DATA(@SANODE)
  1. IF ARRTYPE=0 QUIT
  1. IF ARRTYPE=1 SET ID=$PIECE($GET(@SANODE),"|",1)
  1. IF ARRTYPE=10 SET ID=$GET(@SANODE@(1))
  1. SET TEXT=$GET(@SUMTXT@(0))
  1. SET @SUMTXT@(0)=$SELECT(TEXT="":ID,1:TEXT_", "_ID)
  1. QUIT
  1. ;
  1. FILENAME() ;Returns fabricated file name
  1. NEW TMP,OUT
  1. SET OUT=$$FACNUM^HDISVF01()
  1. SET TMP=$$HTE^XLFDT($HOROLOG,"7FS")
  1. SET OUT=OUT_"-"_$TRANSLATE(TMP," @/:","0-")
  1. SET OUT=OUT_".XML"
  1. QUIT OUT
  1. ;
  1. SENDMSG(MSGTXT,SUBJ) ;Build/send message
  1. ; Input: MSGTXT - Array containing message text
  1. ; (FULL GLOBAL REFERENCE)
  1. ; SUBJ - Message subject (optional)
  1. ;Output: Message number of generated message (aka XMZ)
  1. ; 0 is returned if the message could not be generated
  1. ; Notes: If this is a non-production system the message is sent
  1. ; to the current user
  1. ;
  1. NEW HDISVTO,HDISVFLG,HDISVXMZ,XTYPE
  1. ;Default message subject
  1. SET SUBJ=$GET(SUBJ)
  1. IF (SUBJ="") DO
  1. .NEW FACPTR,FACNUM
  1. .;Get pointer to current location
  1. .SET:('$$GETFAC^HDISVF07(,.FACPTR)) FACPTR=$$FACPTR^HDISVF01()
  1. .;Get facility number of current location
  1. .SET FACNUM=$PIECE($$NS^XUAF4(FACPTR),"^",2)
  1. .IF (FACNUM="") SET FACNUM=$$FACNUM^HDISVF01()
  1. .;Build message subject
  1. .SET SUBJ="LAB EXCEPTION DATA FROM "_FACNUM
  1. .QUIT
  1. ;Deliver to mail group on FORUM
  1. SET HDISVTO("G.HDIS LAB EXCEPTIONS@DOMAIN.EXT")=""
  1. ;If this is a non-production system send message to current user
  1. SET:('$$GETTYPE^HDISVF07(,.XTYPE)) XTYPE=$$PROD^XUPROD()
  1. IF ('XTYPE) DO
  1. .KILL HDISVTO
  1. .SET HDISVTO(DUZ)=""
  1. .QUIT
  1. ;Unrestricted addressing
  1. SET HDISVFLG("ADDR FLAGS")="R"
  1. ;Message is info only
  1. SET HDISVFLG("FLAGS")="I"
  1. ;Message sender
  1. SET HDISVFLG("FROM")="Data Standardization Toolset"
  1. ;Send message (UUEncoded array is the message text)
  1. DO SENDMSG^XMXAPI(DUZ,SUBJ,MSGTXT,.HDISVTO,.HDISVFLG,.HDISVXMZ)
  1. IF $GET(XMERR) DO
  1. .;Error sending message - log error text
  1. .DO ERR2XTMP^HDISVU01("HDI-XM","Message sending",$NAME(^TMP("XMERR",$JOB)))
  1. .KILL XMERR,^TMP("XMERR",$JOB)
  1. .;Reset generated message number
  1. .SET HDISVXMZ=0
  1. .QUIT
  1. ;Done - return message number
  1. QUIT HDISVXMZ
  1. ;
  1. GETTAGS(TAGS) ;Build array of element names
  1. NEW X,LINE
  1. KILL @TAGS
  1. FOR X=1:1 DO QUIT:('X)
  1. .SET LINE=$PIECE($TEXT(TAGS+X),";;",2)
  1. .IF (LINE="") SET X=0 QUIT
  1. .SET @TAGS@(+$PIECE(LINE,"^",1))=$PIECE(LINE,"^",2)
  1. .QUIT
  1. QUIT
  1. ;
  1. TAGS ;
  1. ;;1^Lab_Exceptions
  1. ;;2^Lab_Exception_Data
  1. ;;3^Administrative_Data
  1. ;;3.01^Exception_Station_Number
  1. ;;3.02^Exception_Station_Domain_IP
  1. ;;3.03^Exception_Station_System_Type
  1. ;;3.04^Exception_Type_Code
  1. ;;3.05^Exception_Transaction_Number
  1. ;;3.06^Exception_Time_Stamp
  1. ;;3.07^Lab_Package_Exception_Text
  1. ;;4^Lab_File_SNOMED_Data
  1. ;;4.01^FacilityNumber_FileNumber_IEN
  1. ;;4.02^Entry_Name
  1. ;;4.03^SNOMED_I
  1. ;;4.04^VUID
  1. ;;4.05^SNOMED_CT
  1. ;;4.06^SNOMED_CT_Term
  1. ;;4.07^Mapping_Exception
  1. ;;4.08^Related_Specimen
  1. ;;4.09^Related_Specimen_ID
  1. ;;4.10^Extract_Version
  1. ;;4.11^Term_Status
  1. ;;4.12^STS_Exception
  1. ;;4.13^STS_Exception_Reason
  1. ;;5^Mapping_Data_Being_Loaded
  1. ;;5.01^Mapping_Data_FacilityNumber_FileNumber_IEN
  1. ;;5.02^Mapping_Data_Entry_Name
  1. ;;5.03^Mapping_Data_SNOMED_I
  1. ;;5.04^Mapping_Data_STS_Further_Action
  1. ;;5.05^Mapping_Data_STS_SCT_ID
  1. ;;5.06^Mapping_Data_STS_Type_Of_Match
  1. ;;6^Reference_Lab_Data
  1. ;;6.01^Reference_Lab_Type_Code
  1. ;;6.02^Reference_Lab_Station_Number
  1. ;;6.03^Reference_Lab_Name
  1. ;;6.04^Reference_Lab_OBX-3
  1. ;;6.05^Reference_Lab_OBX-5
  1. ;;