- VAFHLMFE ;ALB/CM,JLU-HL7 MFE SEGMENT ;8/23/95
- ;;5.3;Registration;**149**;Aug 13, 1993
- ;;5.3;Registration;**Philly 2 Prototype**;Aug 13, 1993
- ;
- MFE(EVENT,MFN,EDT,CODE) ;
- ;
- ;Input Parameters:
- ;EVENT - Record-level Event Code. If not defined, the default is MAD (always add record to master file
- ;MFN - MFN Control ID. If not defined, the default is null
- ;EDT - Effective date/time. If not defined, the default is today. This should be in FM date/time format.
- ;CODE - REQUIRED! Primary Key Value. If not defined, segment will not be built and record will not be sent.
- ;
- ;Output:
- ;MFE - contains the segment if successful
- ; - contains -1^error message if unsuccessful
- ;
- I '$D(EVENT) S EVENT="MAD"
- I '$D(MFN) S MFN=""
- I '$D(EDT) D NOW^%DTC S EDT=$P(%,".") K %
- I '$D(CODE) S MFE="-1^No Primary Key Value" G EXIT
- N MFE
- S MFE="MFE"_HLFS_EVENT_HLFS_MFN_HLFS_$$HLDATE^HLFNC(EDT)_HLFS_CODE
- EXIT ;
- Q MFE
- ;
- EN(ENC,FS,QUOTS,ARY) ;formats the MFE segment
- ;INPUTS ENC - the encoding characters for the segments
- ; FS - the field separators to be used
- ; QUOTS - what to use as double quots
- ; ARY - this array contains the data to be place in the
- ; MFE segment. The subscripts of the array should
- ; be the sequence number of the data element in the
- ; array.
- ; Ex. X(1)=Record Level Event Code
- ; X(2)=MFN Control ID
- ; X(3)=Effective Date/time
- ; etc.
- ;OUTPUT
- ; 0^description if there was an error.
- ; the formatted segment if successful.
- N SEG,LP
- I '$D(ENC)!('$D(FS))!('$D(QUOTS))!('$D(ARY)) S SEG="0^Missing parameters." G MFIQ
- I $D(@ARY)<10 S SEG="0^Field array not populated." G MFIQ
- S SEG=""
- F LP=0:0 S LP=$O(@ARY@(LP)) Q:'LP S $P(SEG,FS,LP+1)=@ARY@(LP)
- S $P(SEG,FS,1)="MFE"
- MFIQ Q SEG
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HVAFHLMFE 1905 printed Feb 19, 2025@00:29:02 Page 2
- VAFHLMFE ;ALB/CM,JLU-HL7 MFE SEGMENT ;8/23/95
- +1 ;;5.3;Registration;**149**;Aug 13, 1993
- +2 ;;5.3;Registration;**Philly 2 Prototype**;Aug 13, 1993
- +3 ;
- MFE(EVENT,MFN,EDT,CODE) ;
- +1 ;
- +2 ;Input Parameters:
- +3 ;EVENT - Record-level Event Code. If not defined, the default is MAD (always add record to master file
- +4 ;MFN - MFN Control ID. If not defined, the default is null
- +5 ;EDT - Effective date/time. If not defined, the default is today. This should be in FM date/time format.
- +6 ;CODE - REQUIRED! Primary Key Value. If not defined, segment will not be built and record will not be sent.
- +7 ;
- +8 ;Output:
- +9 ;MFE - contains the segment if successful
- +10 ; - contains -1^error message if unsuccessful
- +11 ;
- +12 IF '$DATA(EVENT)
- SET EVENT="MAD"
- +13 IF '$DATA(MFN)
- SET MFN=""
- +14 IF '$DATA(EDT)
- DO NOW^%DTC
- SET EDT=$PIECE(%,".")
- KILL %
- +15 IF '$DATA(CODE)
- SET MFE="-1^No Primary Key Value"
- GOTO EXIT
- +16 NEW MFE
- +17 SET MFE="MFE"_HLFS_EVENT_HLFS_MFN_HLFS_$$HLDATE^HLFNC(EDT)_HLFS_CODE
- EXIT ;
- +1 QUIT MFE
- +2 ;
- EN(ENC,FS,QUOTS,ARY) ;formats the MFE segment
- +1 ;INPUTS ENC - the encoding characters for the segments
- +2 ; FS - the field separators to be used
- +3 ; QUOTS - what to use as double quots
- +4 ; ARY - this array contains the data to be place in the
- +5 ; MFE segment. The subscripts of the array should
- +6 ; be the sequence number of the data element in the
- +7 ; array.
- +8 ; Ex. X(1)=Record Level Event Code
- +9 ; X(2)=MFN Control ID
- +10 ; X(3)=Effective Date/time
- +11 ; etc.
- +12 ;OUTPUT
- +13 ; 0^description if there was an error.
- +14 ; the formatted segment if successful.
- +15 NEW SEG,LP
- +16 IF '$DATA(ENC)!('$DATA(FS))!('$DATA(QUOTS))!('$DATA(ARY))
- SET SEG="0^Missing parameters."
- GOTO MFIQ
- +17 IF $DATA(@ARY)<10
- SET SEG="0^Field array not populated."
- GOTO MFIQ
- +18 SET SEG=""
- +19 FOR LP=0:0
- SET LP=$ORDER(@ARY@(LP))
- if 'LP
- QUIT
- SET $PIECE(SEG,FS,LP+1)=@ARY@(LP)
- +20 SET $PIECE(SEG,FS,1)="MFE"
- MFIQ QUIT SEG