PRCHAAC3 ;WIFO/TN/CR-CONT. OF IFCAP HL7 MESSAGE TO AUSTIN ;4/28/05 2:43 PM
 ;;5.1;IFCAP;**79**;Oct 20, 2000
 ;Per VHA Directive 10-93-142, this routine should not be modified.
 ;This function is called from the routine PRCHAAC.
 ;
LIDT(PRCPO) ;This function goes through all the line items on a PO
 ;       to get information on the item with the highest dollar amount.
 ;       If there is a problem with the PO, the function will return
 ;       a zero
 ;
 ;     1         2         3            4             5        6     
 ; PO Number^PO Total^Description^item amount^contract number^FSC
 ; FSC - FEDERAL SUPPLY CLASSIFICATION
 ;
 N AMT,AMT1,CNT,DESC,ITEM,ITEM1,PO,REC,REC1,REC2,TOTAL
 I '$D(^PRC(442,PRCPO,2,0)) QUIT 0     ;No line items
 ;
 ;Get line item with the highest cost
 S AMT="",ITEM1=0
 F  S ITEM1=$O(^PRC(442,PRCPO,2,ITEM1)) Q:'ITEM1  D
 . S REC=$G(^PRC(442,PRCPO,2,ITEM1,2)) ;Get item record
 . QUIT:REC=""
 . S REC=$P(REC,U,1,3)  ;Get the 1st 3 fields
 . S AMT1=+REC          ;Cost of the item
 . I AMT1<AMT QUIT      ;Get the next record
 . S AMT=AMT1
 . S ITEM=ITEM1
 . S REC2=REC           ;Save record with highest dollar amount
 ;
 I 'AMT QUIT 0          ;No dollar amount
 S REC1=^PRC(442,PRCPO,0)
 S PO=$P(REC1,U)                              ;Get PO number
 S TOTAL=$P(REC1,U,15)                        ;Get PO total
 S DESC=^PRC(442,PRCPO,2,ITEM,1,1,0)          ;Get item description
 ; Clean the HL7 message of any '^,~,&,\, or |'.
T I DESC["^"!(DESC["|")!(DESC["~")!(DESC["&")!(DESC["\") S DESC=$$STRIP^XLFSTR(DESC,"^~|&\")
 S PO=PO_"^"_TOTAL_"^"_$E(DESC,1,50)_"^"_REC2 ;Setup return data
 ;
 QUIT PO
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPRCHAAC3   1672     printed  Sep 23, 2025@19:41:38                                                                                                                                                                                                    Page 2
PRCHAAC3  ;WIFO/TN/CR-CONT. OF IFCAP HL7 MESSAGE TO AUSTIN ;4/28/05 2:43 PM
 +1       ;;5.1;IFCAP;**79**;Oct 20, 2000
 +2       ;Per VHA Directive 10-93-142, this routine should not be modified.
 +3       ;This function is called from the routine PRCHAAC.
 +4       ;
LIDT(PRCPO) ;This function goes through all the line items on a PO
 +1       ;       to get information on the item with the highest dollar amount.
 +2       ;       If there is a problem with the PO, the function will return
 +3       ;       a zero
 +4       ;
 +5       ;     1         2         3            4             5        6     
 +6       ; PO Number^PO Total^Description^item amount^contract number^FSC
 +7       ; FSC - FEDERAL SUPPLY CLASSIFICATION
 +8       ;
 +9        NEW AMT,AMT1,CNT,DESC,ITEM,ITEM1,PO,REC,REC1,REC2,TOTAL
 +10      ;No line items
           IF '$DATA(^PRC(442,PRCPO,2,0))
               QUIT 0
 +11      ;
 +12      ;Get line item with the highest cost
 +13       SET AMT=""
           SET ITEM1=0
 +14       FOR 
               SET ITEM1=$ORDER(^PRC(442,PRCPO,2,ITEM1))
               if 'ITEM1
                   QUIT 
               Begin DoDot:1
 +15      ;Get item record
                   SET REC=$GET(^PRC(442,PRCPO,2,ITEM1,2))
 +16               if REC=""
                       QUIT 
 +17      ;Get the 1st 3 fields
                   SET REC=$PIECE(REC,U,1,3)
 +18      ;Cost of the item
                   SET AMT1=+REC
 +19      ;Get the next record
                   IF AMT1<AMT
                       QUIT 
 +20               SET AMT=AMT1
 +21               SET ITEM=ITEM1
 +22      ;Save record with highest dollar amount
                   SET REC2=REC
               End DoDot:1
 +23      ;
 +24      ;No dollar amount
           IF 'AMT
               QUIT 0
 +25       SET REC1=^PRC(442,PRCPO,0)
 +26      ;Get PO number
           SET PO=$PIECE(REC1,U)
 +27      ;Get PO total
           SET TOTAL=$PIECE(REC1,U,15)
 +28      ;Get item description
           SET DESC=^PRC(442,PRCPO,2,ITEM,1,1,0)
 +29      ; Clean the HL7 message of any '^,~,&,\, or |'.
T          IF DESC["^"!(DESC["|")!(DESC["~")!(DESC["&")!(DESC["\")
               SET DESC=$$STRIP^XLFSTR(DESC,"^~|&\")
 +1       ;Setup return data
           SET PO=PO_"^"_TOTAL_"^"_$EXTRACT(DESC,1,50)_"^"_REC2
 +2       ;
 +3        QUIT PO