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

ALPBUTL2.m

Go to the documentation of this file.
ALPBUTL2 ;OIFO-DALLAS MW,SED,KC-BCBU BACKUP REPORT FUNCTIONS AND UTILITIES  ;01/01/03
 ;;3.0;BAR CODE MED ADMIN;**8,108**;Mar 2004;Build 33
 ;
 ;*108 - add ZZZ segment for Hazardous drug flags
 ;
DELALG(IEN) ; delete allergies...
 ; IEN = the patient's record number in file 53.7
 ; deletes any allergies in the patient's record -- returns nothing
 I +$G(IEN)=0 Q
 I +$O(^ALPB(53.7,IEN,1,0))=0 Q
 N ALPBX,DA,DIK,X,Y
 S ALPBX=0
 F  S ALPBX=$O(^ALPB(53.7,IEN,1,ALPBX)) Q:'ALPBX  D
 .S DA=ALPBX
 .S DA(1)=IEN
 .S DIK="^ALPB(53.7,"_DA(1)_",1,"
 .D ^DIK
 .K DA,DIK
 Q
 ;
GETPID(DATA,FS,CS,ECH,RESULTS) ; retrieve specific patient ID data from
 ; PID segment...
 ; DATA    = HL7 data string
 ; FS      = HL7 field separator character
 ; CS      = HL7 component separator character
 ; ECH     = HL7 separators string
 ; RESULTS = an array passed by reference into which retrieved data
 ;           is returned patient's DFN
 S RESULTS(1)=$P($P(DATA,FS,4),CS,1)
 ; name...
 S RESULTS(2)=$$FMNAME^HLFNC($P(DATA,FS,6),ECH)
 ; ssn (strip any dashes)...
 S RESULTS(3)=$$STRIP^XLFSTR($P($P(DATA,FS,3),CS,1),"-")
 ; dob...
 S RESULTS(4)=$$FMDATE^HLFNC($P(DATA,FS,8))
 ; gender...
 S RESULTS(5)=$P(DATA,FS,9)
 Q
 ;
GETORC(DATA,FS,CS,RESULTS) ; retrieve order number, date, type, and
 ; CPRS order number from ORC segment...
 ; DATA    = HL7 data string
 ; FS      = HL7 field separator character
 ; CS      = HL7 component separator character
 ; RESULTS = an array passed by reference into which retrieved data
 ;           is returned order action
 S RESULTS(0)=$P(DATA,FS,2)
 ; order number...
 S RESULTS(1)=$P($P(DATA,FS,4),CS,1)
 ; order date/time...
 S RESULTS(2)=$S($P(DATA,FS,16)'="":$$FMDATE^HLFNC($P(DATA,FS,16)),$P(DATA,FS,10)'="":$$FMDATE^HLFNC($P(DATA,FS,10)),1:"")
 ; CPRS order number...
 S RESULTS(3)=+$P(DATA,FS,3)
 ; order type...
 S RESULTS(4)=$E(RESULTS(1),$L(RESULTS(1)))
 Q
 ;
GETZZZ(DATA,FS,CS,RESULTS) ; retrieve HAZ flags   *108
 ; HAZARDOUS FLAGS segment...
 ; DATA    = HL7 data string
 ; FS      = HL7 field separator character
 ; CS      = HL7 component separator character
 ; RESULTS = an array passed by reference into which retrieved data
 ;           is returned order action
 S RESULTS(1)=$S($P(DATA,FS,5)="Y":1,1:0)   ;Haz to Handle
 S RESULTS(2)=$S($P(DATA,FS,6)="Y":1,1:0)   ;Haz to Dispose
 Q
 ;
DELERR(IEN) ; delete an entry from the Error Log...
 ; IEN = the Error Log record number
 N ALPBPARM,DA,DIK,X,Y
 S ALPBPARM=+$O(^ALPB(53.71,0))
 I ALPBPARM'>0 Q
 S DA=IEN
 S DA(1)=ALPBPARM
 S DIK="^ALPB(53.71,"_DA(1)_",1,"
 D ^DIK
 Q
 ;
ERRCT() ; fetch and return count of errors in the log in BCMA BACKUP PARAMETERS
 ; file...
 ; returns count of errors
 N ALPBPARM,ALPBCNT,ALPBX
 S ALPBPARM=+$O(^ALPB(53.71,0))
 I ALPBPARM'>0 Q 0
 S (ALPBCNT,ALPBX)=0
 F  S ALPBX=$O(^ALPB(53.71,ALPBPARM,1,"B",ALPBX)) Q:'ALPBX  S ALPBCNT=ALPBCNT+1
 Q ALPBCNT
 ;
REPL(X,Y) ; replace non-alpha and non-numeric characters...
 ; X = a string to examine
 ; Y = a character to use as the replacment
 ; returns a string with any non-alpha and non-numeric characters
 ; converted to the character passed in Y
 I $G(X)=""!($G(Y)="") Q X
 N I,NEWSTR,NEWX,Z
 S NEWSTR=""
 F I=1:1:$L(X) D
 .S (NEWX,Z)=$E(X,I)
 .I $A(Z)<48&($A(Z)'=44) S NEWX=Y
 .I $A(Z)>57&($A(Z)<65) S NEWX=Y
 .I $A(Z)>90&($A(Z)<97) S NEWX=Y
 .I $A(Z)>122 S NEWX=Y
 .S NEWSTR=NEWSTR_NEWX
 Q NEWSTR
 ;
CLORD(IEN,OIEN) ; delete drug(s), additive(s) and/or solution(s) entries
 ; for a specified order...
 ; IEN  = patient's record number in file 53.7
 ; OIEN = order's sub-record number in file 53.7
 ; returns nothing
 I +$G(IEN)=0!(+$G(OIEN)=0) Q
 N DA,DIK,SUB,X,XIEN,Y
 F SUB=7,8,9 D
 .S XIEN=0
 .F  S XIEN=$O(^ALPB(53.7,IEN,2,OIEN,SUB,XIEN)) Q:'XIEN  D
 ..S DA=XIEN
 ..S DA(1)=OIEN
 ..S DA(2)=IEN
 ..S DIK="^ALPB(53.7,"_DA(2)_",2,"_DA(1)_","_SUB_","
 ..D ^DIK
 ..K DA,DIK
 .K XIEN
 Q