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

IBCNRHLT.m

Go to the documentation of this file.
  1. IBCNRHLT ;DAOU/DMK - Receive HL7 e-Pharmacy MFN Message ;23-OCT-2003
  1. ;;2.0;INTEGRATED BILLING;**251,435,550**;21-MAR-94;Build 25
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. ; Description
  1. ;
  1. ; Receive HL7 e-Pharmacy MFN Message
  1. ; Table Update
  1. ;
  1. ; Control processing of segments
  1. ;
  1. ; Required segments listed in order
  1. ; MSH (Message Header Segment)
  1. ; MFI (Master File Identifier Segment)
  1. ; MFE (Master File Entry Segment)
  1. ;
  1. ; Optional segments listed by file
  1. ;
  1. ; ZPT (366.01 NCPDP PROCESSOR File Update Segment)
  1. ; ZCM (366.012 NCPDP PROCESSOR CONTACT MEANS Subfile Update Segment)
  1. ;
  1. ; ZPB (366.02 PHARMACY BENEFITS MANAGER (PBM) File Update Segment)
  1. ; ZCM (366.022 PHARMACY BENEFITS MANAGER (PBM) CONTACT MEANS Subfile
  1. ; Update Segment)
  1. ;
  1. ; ZPL (366.03 PLAN File Update Segment)
  1. ; ZCM (366.032 PLAN CONTACT MEANS Subfile Update Segment)
  1. ;
  1. ; ZPP (366.03 PLAN File (Pharmacy) Update Segment)
  1. ; ZCM (366.0312 PLAN RX CONTACT MEANS Subfile Update Segment)
  1. ;
  1. ; * File # (MFI Segment) = 366.01, 366.02, or 366.03
  1. ; * Segment ID (every segment) = MFE, ZCM, ZPB, ZPL, ZPP, or ZPT
  1. ;
  1. ; Entry point
  1. ;
  1. 1000 ; Control processing
  1. I $D(ERROR) Q
  1. D @SEG
  1. ;
  1. ; Initialize MFK Message (Application Acknowledgement) variables
  1. I $D(ERROR) D Q
  1. . S DATAMFK("ERROR")=ERROR
  1. . S DATAMFK("IEN")=IEN
  1. ;
  1. ; Quit if more segments
  1. I $O(^TMP($J,"BPSJHLI",HCT))]"" Q
  1. ;
  1. ; Update File?
  1. I $D(DATA) D
  1. . S FIELDNO="" F S FIELDNO=$O(DATA(FIELDNO)) Q:FIELDNO="" D
  1. .. ;
  1. .. ; Convert "" to "@" to delete field value if necessary
  1. .. I IEN'=-1,DATA(FIELDNO)="" S DATA(FIELDNO)="@"
  1. .. ;
  1. .. ; Convert HL7 special characters if necessary
  1. .. I DATA(FIELDNO)[$E(HLECH,3) S DATA(FIELDNO)=$$TRAN1^IBCNRHLU(DATA(FIELDNO))
  1. . D FILE
  1. ;
  1. ; Update APPLICATION Subfile?
  1. I $D(DATAAP) D
  1. . S FIELDNO="" F S FIELDNO=$O(DATAAP(FIELDNO)) Q:FIELDNO="" D
  1. .. ;
  1. .. ; Convert "" to "@" to delete field value if necessary
  1. .. I APIEN'=-1,DATAAP(FIELDNO)="" S DATAAP(FIELDNO)="@"
  1. .. ;
  1. .. ; Convert HL7 special characters if necessary
  1. .. I DATAAP(FIELDNO)[$E(HLECH,3) S DATAAP(FIELDNO)=$$TRAN1^IBCNRHLU(DATAAP(FIELDNO))
  1. . S FIELDNO=3
  1. . D FILEAP
  1. ;
  1. ; Update CONTACT MEANS Subfile?
  1. I $D(DATACM) D
  1. . S FIELDNO="" F S FIELDNO=$O(DATACM(FIELDNO)) Q:FIELDNO="" D
  1. .. ;
  1. .. ; Convert "" to "@" to delete field value if necessary
  1. .. I CMIEN'=-1,DATACM(FIELDNO)="" S DATACM(FIELDNO)="@"
  1. .. ;
  1. .. ; Convert HL7 special characters if necessary
  1. .. I DATACM(FIELDNO)[$E(HLECH,3) S DATACM(FIELDNO)=$$TRAN1^IBCNRHLU(DATACM(FIELDNO))
  1. . S FIELDNO=$S(FILE["Pharmacy"&(FILENO=366.03):12,1:2)
  1. . I IBCNACT="MDL" D DELETECM Q
  1. . D FILECM
  1. Q
  1. ;
  1. ADD ; Add File entry
  1. ; 366.01 NCPDP PROCESSOR File
  1. ; 366.02 PHARMACY BENEFITS MANAGER (PBM) File
  1. ; 366.03 PLAN File
  1. ;
  1. S IEN=$$ADD1^IBCNRFM1(FILENO,DATA(.01))
  1. Q
  1. ;
  1. ADDAP ; Add APPLICATION Subfile entry
  1. ; 366.013 NCPDP PROCESSOR APPLICATION File
  1. ; 366.023 PHARMACY BENEFITS MANAGER (PBM) APPLICATION Subfile
  1. ; 366.033 PLAN APPLICATION Subfile
  1. ;
  1. S APIEN=$$ADD2^IBCNRFM1(FILENO,IEN,FIELDNO,AIEN)
  1. Q
  1. ;
  1. ADDCM ; Add CONTACT MEANS Subfile entry
  1. ; 366.012 NCPDP PROCESSOR CONTACT MEANS Subfile
  1. ; 366.022 PHARMACY BENEFITS MANAGER (PBM) CONTACT MEANS Subfile
  1. ; 366.032 PLAN CONTACT MEANS Subfile
  1. ; 366.0312 PLAN RX CONTACT MEANS Subfile
  1. ;
  1. S CMIEN=$$ADD2^IBCNRFM1(FILENO,IEN,FIELDNO,DATACM(.01))
  1. Q
  1. ;
  1. DELETECM ; Delete CONTACT MEANS Subfile entry
  1. ; 366.012 NCPDP PROCESSOR CONTACT MEANS Subfile
  1. ; 366.022 PHARMACY BENEFITS MANAGER (PBM) CONTACT MEANS Subfile
  1. ; 366.032 PLAN CONTACT MEANS Subfile
  1. ; 366.0312 PLAN RX CONTACT MEANS Subfile
  1. ;
  1. D DELETE2^IBCNRFM1(FILENO,IEN,FIELDNO,CMIEN)
  1. Q
  1. ;
  1. FILE ; File data
  1. ; 366.01 NCPDP PROCESSOR File
  1. ; 366.02 PHARMACY BENEFITS MANAGER (PBM) File
  1. ; 366.03 PLAN File
  1. ;
  1. ; Add?
  1. I IEN=-1 D ADD
  1. ;
  1. ; Update
  1. D FILE1^IBCNRFM1(FILENO,IEN,.DATA)
  1. Q
  1. ;
  1. FILEAP ; File APPLICATION Subfile data
  1. ; 366.013 NCPDP PROCESSOR APPLICATION Subfile
  1. ; 366.023 PHARMACY BENEFITS MANAGER (PBM) APPLICATION Subfile
  1. ; 366.033 PLAN APPLICATION Subfile
  1. ;
  1. ; Add?
  1. I APIEN=-1 D ADDAP
  1. ;
  1. ; Update
  1. D FILE2^IBCNRFM1(FILENO,IEN,FIELDNO,APIEN,.DATAAP)
  1. Q
  1. ;
  1. FILECM ; File CONTACT MEANS Subfile data
  1. ; 366.012 NCPDP PROCESSOR CONTACT MEANS Subfile
  1. ; 366.022 PHARMACY BENEFITS MANAGER (PBM) CONTACT MEANS Subfile
  1. ; 366.032 PLAN CONTACT MEANS Subfile
  1. ; 366.0312 PLAN RX CONTACT MEANS Subfile
  1. ;
  1. ; Add?
  1. I CMIEN=-1 D ADDCM
  1. ;
  1. ; Update
  1. D FILE2^IBCNRFM1(FILENO,IEN,FIELDNO,CMIEN,.DATACM)
  1. Q
  1. ;
  1. MFE ; Process MFE Segment
  1. D ^IBCNRMFE
  1. Q
  1. ;
  1. ZCM ; Process ZCM Segment
  1. D ^IBCNRZCM
  1. Q
  1. ;
  1. ZPB ; Process ZPB Segment
  1. D ^IBCNRZPB
  1. Q
  1. ;
  1. ZPL ; Process ZPL Segment
  1. D ^IBCNRZPL
  1. Q
  1. ;
  1. ZPP ; Process ZPP Segment
  1. D ^IBCNRZPP
  1. Q
  1. ;
  1. ZPT ; Process ZPT Segment
  1. D ^IBCNRZPT
  1. Q