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

BIMFI.m

Go to the documentation of this file.
  1. BIMFI ;IHS/CMI/MWR - MFI INTERFACE CODE; MAY 10, 2010
  1. ;;8.5;IMMUNIZATION;;SEP 01,2011
  1. ;;* MICHAEL REMILLARD, DDS * CIMARRON MEDICAL INFORMATICS, FOR IHS *
  1. ;; CODE FOR MFI INTERFACE WITH MACHINES STILL USING OLD IHS CODES.
  1. ;
  1. ;
  1. ;----------
  1. INBOUND(BIMSG) ;EP
  1. ;---> Translate Inbound Vaccine carrying Old IHS Code to HL7 Code
  1. ;---> by scanning Inbound Message and replacing Old IHS Code
  1. ;---> with HL7 Code.
  1. ;---> Called by ^APMFPRM.
  1. ;---> Parameters:
  1. ; 1 - BIMSG (req) IEN of Inbound Immunization Visit Filegram
  1. ; in ^XMB(3.9.
  1. Q:$$CHECK(BIMSG)
  1. ;
  1. N BIN S BIN=1
  1. F S BIN=$O(^XMB(3.9,BIMSG,2,BIN)) Q:'BIN D
  1. .Q:^XMB(3.9,BIMSG,2,BIN,0)'["BEGIN:IMMUNIZATION^9999999.14"
  1. .S BIN=BIN+1
  1. .N BIX S BIX=^XMB(3.9,BIMSG,2,BIN,0)
  1. .Q:BIX'["KEY:CODE^.03^C="
  1. .;
  1. .;---> BIOLD=Old IHS Code.
  1. .N BIOLD S BIOLD=$P(BIX,"=",2)
  1. .;
  1. .;---> Quit if no match for this IHS Code.
  1. .Q:'$D(^AUTTIMM("AZ",BIOLD))
  1. .;
  1. .;---> Set BIDA=IEN of Vaccine, based on Old IHS Code (in X).
  1. .N BIDA S BIDA=$O(^AUTTIMM("AZ",BIOLD,0))
  1. .;
  1. .;---> Quit if entry doesn't exist.
  1. .Q:'$D(^AUTTIMM(BIDA,0))
  1. .;
  1. .;---> BINEW=New HL7 Code
  1. .N BINEW S BINEW=$P(^AUTTIMM(BIDA,0),U,3)
  1. .Q:'BINEW
  1. .;
  1. .;---> Replace Old IHS Code in Message with New HL7 Code.
  1. .S $P(^XMB(3.9,BIMSG,2,BIN,0),"=",2)=BINEW
  1. Q
  1. ;
  1. ;
  1. ;
  1. ;----------
  1. OUTBOUND(BIMSG) ;EP
  1. ;---> Translate Outbound Vaccine carrying New HL7 Code to
  1. ;---> Old IHS Code by scanning Outbound Message and replacing
  1. ;---> HL7 Code with Old IHS Code.
  1. ;---> Called by ^APMFVFG.
  1. ;---> Parameters:
  1. ; 1 - BIMSG (req) IEN of Outbound Immunization Visit Filegram
  1. ; in ^XMB(3.9.
  1. Q:$$CHECK(BIMSG)
  1. ;
  1. N BIN S BIN=1
  1. F S BIN=$O(^XMB(3.9,BIMSG,2,BIN)) Q:'BIN D
  1. .Q:^XMB(3.9,BIMSG,2,BIN,0)'["BEGIN:IMMUNIZATION^9999999.14"
  1. .S BIN=BIN+1
  1. .N BIX S BIX=^XMB(3.9,BIMSG,2,BIN,0)
  1. .Q:BIX'["KEY:HL7 CODE^.03^C="
  1. .;
  1. .;---> BIOLD=Old IHS Code.
  1. .N BIHL7 S BIHL7=$P(BIX,"=",2)
  1. .;
  1. .;---> Quit if no match for this IHS Code.
  1. .Q:'$D(^AUTTIMM("C",BIHL7))
  1. .;
  1. .;---> Set BIDA=IEN of Vaccine, based on Old IHS Code (in X).
  1. .N BIDA S BIDA=$O(^AUTTIMM("C",BIHL7,0))
  1. .;
  1. .;---> Quit if entry doesn't exist.
  1. .Q:'$D(^AUTTIMM(BIDA,0))
  1. .;
  1. .;---> BINEW=Old IHS Code.
  1. .N BINEW S BINEW=$P(^AUTTIMM(BIDA,0),U,20)
  1. .Q:BINEW=""
  1. .;
  1. .;---> Replace New HL7 Code in Message with Old IHS Code.
  1. .S $P(^XMB(3.9,BIMSG,2,BIN,0),"KEY:",2)="CODE^.03^C="_BINEW
  1. Q
  1. ;
  1. ;
  1. ;----------
  1. CHECK(BIMSG) ;EP
  1. ;---> Check required variables.
  1. ;---> Parameters:
  1. ; 1 - BIMSG (req) IEN of Immunization Visit Filegram
  1. ;
  1. ;---> Get Site IEN.
  1. S BIDUZ2=$G(DUZ(2))
  1. I 'BIDUZ2 Q:'$G(^AUTTSITE(1,0)) S BIDUZ2=+^(0)
  1. Q:'BIDUZ2 1
  1. ;
  1. ;---> Quit if Site Parameter says to send HL7 Standard Codes.
  1. Q:$P($G(^BISITE(BIDUZ2,0)),U,20) 1
  1. ;
  1. ;---> Quit if Message does not exist.
  1. Q:'$D(^XMB(3.9,BIMSG,2)) 1
  1. ;
  1. ;---> All okay.
  1. Q 0