LA7VIN7D ;DALOI/JDB - Process ORU's OBX for Micro ;11/18/11  14:41
 ;;5.2;AUTOMATED LAB INSTRUMENTS;**74**;Sep 27, 1994;Build 229
 ;
 ; Continuation of LA7VIN7 and is only called from there.
 ; Process OBX segments for "MI" subscript tests.
 Q
 ;
8 ;
 ; Process Parasite (Subscript 6)
 N X,SUB,ISQN2
 I LA7612<1 D  Q  ;
 . ; Unknown entity in OBX-5
 . N LA7VOBX5
 . S LA7VOBX5=OBX5 ;needed for log
 . S LA7VOBX5=$$UNESC^LA7VHLU3(LA7VOBX5,LA7FS_LA7ECH)
 . D CREATE^LA7LOG(204)
 . S LA7KILAH=1 S LA7QUIT=2
 ;
 S ISQN2=0
 I SUBID'="" S ISQN2=$$SUBID^LAGEN(LWL,LA7ISQN,"MI",6,SUBID)
 I SUBID="" I $G(PSUBID)'="" S ISQN2=$$SUBID^LAGEN(LWL,LA7ISQN,"MI",6,PSUBID)
 K LA7VPSTG ; used to track ISQN3 for Parasite Stage Quantity
 I 'ISQN2 D  Q  ;
 . D SUBIDERR^LA7VIN71
 ;
 S SUB="6,0"
 D LAH(SUB,-1,"")
 S SUB="6,"_ISQN2_",0"
 D LAH(SUB,1,LA7612) ; #61.2 IEN
 S SUB="6,"_ISQN2_",0,.01"
 D LAH(SUB,1,LA7RLNC) ; LOINC
 D LAH(SUB,2,LA7SCT)
 S SUB="6,"_ISQN2_",0,.01,0"
 D LAH(SUB,1,OBX11) ;obsv result status
 S SUB="6,"_ISQN2_",0,.01,1"
 D LAH(SUB,1,LA74) ; perf lab
 S X=$P(LA7RO,"^",3)
 D LAH(SUB,2,X) ;resp observer
 S SUB="6,"_ISQN2_",.1"
 D LAH(SUB,1,SUBID) ; isolate ID
 D NTE
 Q
 ;
12(COM) ;
 ; Process Parasite Rpt Remark (Subscript 7)
 ; Input
 ;  COM : <opt> The text to use for the remark (comment)
 ;      :  If empty OBX5 is used
 ;
 N X,SUB,ISQN2,TEXT,TEXT2,MAXLEN
 ; dont initialize COM
 S SUB="7,0"
 D LAH(SUB,1,LA74)
 S X=$P(LA7RO,"^",3)
 D LAH(SUB,2,X) ; resp obsv
 D LAH(SUB,3,LA7RLNC) ; LOINC
 D LAH(SUB,4,OBX11) ;obsv status
 S ISQN2=$O(^LAH(LWL,1,LA7ISQN,"MI",7,"A"),-1)+1
 ; pull comment from COM or OBX5
 S TEXT="OBX5"
 I $D(COM)=1 S TEXT="COM"
 I TEXT="OBX5" S TEXT2=$$UNESC^LA7VHLU3(OBX5,LA7FS_LA7ECH)
 I TEXT="COM" S TEXT2=$G(COM)
 S MAXLEN=68 ; COMMENTS field size
 S SUB="7,"_ISQN2_",0"
 ; insert separator line if needed
 I ISQN2>1 D LAH(SUB,1," ") S ISQN2=ISQN2+1 S SUB="7,"_ISQN2_",0"
 ;
 ; if this an override insert Original Concept name
 I $P(DSOBX3,"^",6) I $P(DSOBX3,"^",1)'=$P(DSOBX3,"^",6) D  ;
 . S X=$P(DSOBX3,"^",6) ;original concept
 . S X=$G(^LAB(62.47,X,0))
 . S X=$P(X,U,1)
 . Q:X=""
 . D LAH(SUB,1,"["_X_"]")
 . S ISQN2=ISQN2+1 S SUB="13,"_ISQN2_",0"
 ;
 ; modify MAXLEN for prefixed Subid
 I $L(TEXT2)'>MAXLEN D  ;
 . D LAH(SUB,1,TEXT2)
 I $L(TEXT2)>MAXLEN D  ;
 . N I,Y,PASS
 . S PASS=$L(TEXT2)\MAXLEN
 . S:($L(TEXT2)#MAXLEN)>0 PASS=PASS+1
 . F I=0:1:PASS-1 S Y=(I*MAXLEN)+1 D  ;
 . . D LAH(SUB,1,$E(TEXT2,Y,(Y+MAXLEN)-1))
 . . S Y=Y+MAXLEN
 . . S ISQN2=ISQN2+1
 . . S SUB="7,"_ISQN2_",0"
 . ;
 D NTE^LA7VIN71(LA76247,ISQN)
 Q
 ;
13 ;
 ; Process Parasite's Stage
 N X,SUB,ISQN2,ISQN3,SEQ2,LADATA,STAGE
 S ISQN2=0
 I SUBID'="" S ISQN2=$$SUBID^LAGEN(LWL,LA7ISQN,"MI",6,SUBID)
 I SUBID="" I $G(PSUBID)'="" S ISQN2=$$SUBID^LAGEN(LWL,1,LA7ISQN,"MI",6,PSUBID)
 I 'ISQN2 D  Q  ;
 . D SUBIDERR^LA7VIN71
 ;
 D LAH("6,0",-1,"")
 S SUB="6,"_ISQN2_",1,0"
 D LAH(SUB,1,"@") ;@=force empty field
 S ISQN3=+$O(^LAH(LWL,1,LA7ISQN,"MI",6,ISQN2,1,"A"),-1)+1
 S LA7VPSTG=ISQN3 ; save this for processing parasite stage count
 S STAGE=""
 K LADATA
 I $G(LA7SCT)'="" D  ;
 . S STAGE=$$SCT2PSTG^LA7VHLU6(LA7SCT,"","SCT",DT)
 . D CHK^DIE(63.35,.01,"",STAGE,.LADATA)
 . I LADATA="^" S STAGE=""
 I $G(LA7SCT)="" D  ;
 . ; Try Set of Codes translation
 . D CHK^DIE(63.35,.01,"",OBX5,.LADATA)
 . I LADATA'="^" S STAGE=LADATA
 ;
 ; file if stage found
 I STAGE'="" D  ;
 . N STOP,SEQ
 . S SEQ=0
 . S X=""
 . S STOP=0
 . ; Find existing stage entry if already in LAH
 . F  S SEQ=$O(^LAH(LWL,1,LA7ISQN,"MI",6,ISQN2,1,SEQ)) Q:'SEQ  D  Q:STOP  ;
 . . S X=$G(^LAH(LWL,1,LA7ISQN,"MI",6,ISQN2,1,SEQ,0))
 . . I $P(X,"^",1)=STAGE S STOP=1 S ISQN3=SEQ
 . ;
 . S LA7VPSTG=ISQN3 ; save for processing Parasite Stage Qty
 . S SUB="6,"_ISQN2_",1,"_ISQN3_",0"
 . S X=STAGE
 . D LAH(SUB,1,X)
 . ;
 . S SUB="6,"_ISQN2_",1,"_ISQN3_",0,.01"
 . I $G(LA7NLT)'="" D LAH(SUB,2,LA7NLT)
 . I $G(LA7SCT)'="" D LAH(SUB,3,LA7SCT) ;SCT stage code
 . ;
 . S SUB="6,"_ISQN2_",1,"_ISQN3_",0,.01,0"
 . D LAH(SUB,1,OBX11) ;obsv status
 . S SUB="6,"_ISQN2_",1,"_ISQN3_",0,.01,1"
 . D LAH(SUB,1,LA74) ; perf lab
 . S X=$P(LA7RO,"^",3)
 . D LAH(SUB,2,X) ; resp observer
 ;
 I STAGE="" I LADATA="^" D  ;
 . S ISQN3=""
 . S X=SUBID
 . S:X="" X=$G(PSUBID)
 . S:X'="" X="["_X_"]UNKNOWN STAGE QTY: "
 . D 12(X_$$UNESC^LA7VHLU3(OBX5,LA7FS_LA7ECH))
 . Q
 . ;
 ;
 ; for NTE info need to pass back ISQN3 also
 I ISQN3 S LA7RMK(0,0)=LA76247_"^"_ISQN2_","_ISQN3
 I 'ISQN3 D NTE
 Q
 ;
14 ;
 ; Process Parasite Stage Quantity
 N X,SUB,ISQN2,ISQN3
 S ISQN2=0
 I SUBID'="" S ISQN2=$$SUBID^LAGEN(LWL,LA7ISQN,"MI",6,SUBID)
 I SUBID="" I $G(PSUBID)'="" S ISQN2=$$SUBID^LAGEN(LWL,LA7ISQN,"MI",6,PSUBID)
 I 'ISQN2 D  Q  ;
 . D SUBIDERR^LA7VIN71
 ;
 ; use associated "Parasite Stage" ISQN3 from previous OBX
 S ISQN3=+$G(LA7VPSTG) ;top level variable
 ; Stage filed so now qty can be filed
 I ISQN3 D  ;
 . S SUB="6,"_ISQN2_",1,"_ISQN3_",0"
 . D LAH(SUB,2,OBX5)
 ;
 I 'ISQN3 D  ;
 . ;file as comment in #63.36
 . ;if we couldnt file the stage we cant file the qty
 . N MAXLEN,SEQ2
 . S MAXLEN=68 ; COMMENTS field size
 . S SEQ2=+$O(^LAH(LWL,LA7ISQN,"MI",ISQN2,7,"A"),-1)+1
 . S SUB="7,"_SEQ2_",0"
 . ; insert separator line if needed
 . I SEQ2>1 D LAH(SUB,1,"") S SEQ2=SEQ2+1 S SUB="7,"_SEQ2_",0"
 . ; modify MAXLEN for prefixed Subid
 . S X=SUBID
 . S:X="" X=$G(PSUBID)
 . S:X'="" X="["_X_"]"
 . S X=X_"UNKNOWN STAGE QTY: "
 . I $L(X_OBX5)'>MAXLEN D  ;
 . . D LAH(SUB,1,X_OBX5)
 . I $L(X_OBX5)>MAXLEN D  ;
 . . N I,Y,PASS
 . . S X=X_OBX5
 . . S PASS=$L(X)\MAXLEN
 . . S:($L(X)#MAXLEN)>0 PASS=PASS+1
 . . F I=0:1:PASS-1 S Y=(I*MAXLEN)+1 D  ;
 . . . I I=0 D LAH(SUB,1,$E(X,Y,(Y+MAXLEN)-1)) ;subid prefix
 . . . I I>0 D LAH(SUB,1,$E(X,Y,(Y+MAXLEN)-1))
 . . . S Y=Y+MAXLEN
 . . . S SEQ2=SEQ2+1
 . . . S SUB="7,"_SEQ2_",0"
 . . ;
 . ;
 ;
 ; For NTE need to send back ISQN3 also
 I ISQN3 S LA7RMK(0,0)=LA76247_"^"_ISQN2_","_ISQN3
 I 'ISQN3 D NTE
 Q
 ;
DDERR ;
 ; If unknown storage location flag error
 ; No File #63 field mapping found for OBX-3
 N LA7OBX3
 S LA7OBX3=OBX3 ;needed for log
 D CREATE^LA7LOG(201)
 S LA7KILAH=1 S LA7QUIT=2
 Q
 ;
LAH(LASUB,LAP,LAVAL) ;
 ; Convenience method
 I LAP'=-1 I LAVAL="" Q
 D LAH^LAGEN(+$G(LWL),+$G(LA7ISQN),"MI",LASUB,LAP,LAVAL)
 Q
 ;
NTE ;
 ; Convenience method
 D NTE^LA7VIN71(LA76247,ISQN2)
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLA7VIN7D   6514     printed  Sep 23, 2025@19:16:35                                                                                                                                                                                                    Page 2
LA7VIN7D  ;DALOI/JDB - Process ORU's OBX for Micro ;11/18/11  14:41
 +1       ;;5.2;AUTOMATED LAB INSTRUMENTS;**74**;Sep 27, 1994;Build 229
 +2       ;
 +3       ; Continuation of LA7VIN7 and is only called from there.
 +4       ; Process OBX segments for "MI" subscript tests.
 +5        QUIT 
 +6       ;
8         ;
 +1       ; Process Parasite (Subscript 6)
 +2        NEW X,SUB,ISQN2
 +3       ;
           IF LA7612<1
               Begin DoDot:1
 +4       ; Unknown entity in OBX-5
 +5                NEW LA7VOBX5
 +6       ;needed for log
                   SET LA7VOBX5=OBX5
 +7                SET LA7VOBX5=$$UNESC^LA7VHLU3(LA7VOBX5,LA7FS_LA7ECH)
 +8                DO CREATE^LA7LOG(204)
 +9                SET LA7KILAH=1
                   SET LA7QUIT=2
               End DoDot:1
               QUIT 
 +10      ;
 +11       SET ISQN2=0
 +12       IF SUBID'=""
               SET ISQN2=$$SUBID^LAGEN(LWL,LA7ISQN,"MI",6,SUBID)
 +13       IF SUBID=""
               IF $GET(PSUBID)'=""
                   SET ISQN2=$$SUBID^LAGEN(LWL,LA7ISQN,"MI",6,PSUBID)
 +14      ; used to track ISQN3 for Parasite Stage Quantity
           KILL LA7VPSTG
 +15      ;
           IF 'ISQN2
               Begin DoDot:1
 +16               DO SUBIDERR^LA7VIN71
               End DoDot:1
               QUIT 
 +17      ;
 +18       SET SUB="6,0"
 +19       DO LAH(SUB,-1,"")
 +20       SET SUB="6,"_ISQN2_",0"
 +21      ; #61.2 IEN
           DO LAH(SUB,1,LA7612)
 +22       SET SUB="6,"_ISQN2_",0,.01"
 +23      ; LOINC
           DO LAH(SUB,1,LA7RLNC)
 +24       DO LAH(SUB,2,LA7SCT)
 +25       SET SUB="6,"_ISQN2_",0,.01,0"
 +26      ;obsv result status
           DO LAH(SUB,1,OBX11)
 +27       SET SUB="6,"_ISQN2_",0,.01,1"
 +28      ; perf lab
           DO LAH(SUB,1,LA74)
 +29       SET X=$PIECE(LA7RO,"^",3)
 +30      ;resp observer
           DO LAH(SUB,2,X)
 +31       SET SUB="6,"_ISQN2_",.1"
 +32      ; isolate ID
           DO LAH(SUB,1,SUBID)
 +33       DO NTE
 +34       QUIT 
 +35      ;
12(COM)   ;
 +1       ; Process Parasite Rpt Remark (Subscript 7)
 +2       ; Input
 +3       ;  COM : <opt> The text to use for the remark (comment)
 +4       ;      :  If empty OBX5 is used
 +5       ;
 +6        NEW X,SUB,ISQN2,TEXT,TEXT2,MAXLEN
 +7       ; dont initialize COM
 +8        SET SUB="7,0"
 +9        DO LAH(SUB,1,LA74)
 +10       SET X=$PIECE(LA7RO,"^",3)
 +11      ; resp obsv
           DO LAH(SUB,2,X)
 +12      ; LOINC
           DO LAH(SUB,3,LA7RLNC)
 +13      ;obsv status
           DO LAH(SUB,4,OBX11)
 +14       SET ISQN2=$ORDER(^LAH(LWL,1,LA7ISQN,"MI",7,"A"),-1)+1
 +15      ; pull comment from COM or OBX5
 +16       SET TEXT="OBX5"
 +17       IF $DATA(COM)=1
               SET TEXT="COM"
 +18       IF TEXT="OBX5"
               SET TEXT2=$$UNESC^LA7VHLU3(OBX5,LA7FS_LA7ECH)
 +19       IF TEXT="COM"
               SET TEXT2=$GET(COM)
 +20      ; COMMENTS field size
           SET MAXLEN=68
 +21       SET SUB="7,"_ISQN2_",0"
 +22      ; insert separator line if needed
 +23       IF ISQN2>1
               DO LAH(SUB,1," ")
               SET ISQN2=ISQN2+1
               SET SUB="7,"_ISQN2_",0"
 +24      ;
 +25      ; if this an override insert Original Concept name
 +26      ;
           IF $PIECE(DSOBX3,"^",6)
               IF $PIECE(DSOBX3,"^",1)'=$PIECE(DSOBX3,"^",6)
                   Begin DoDot:1
 +27      ;original concept
                       SET X=$PIECE(DSOBX3,"^",6)
 +28                   SET X=$GET(^LAB(62.47,X,0))
 +29                   SET X=$PIECE(X,U,1)
 +30                   if X=""
                           QUIT 
 +31                   DO LAH(SUB,1,"["_X_"]")
 +32                   SET ISQN2=ISQN2+1
                       SET SUB="13,"_ISQN2_",0"
                   End DoDot:1
 +33      ;
 +34      ; modify MAXLEN for prefixed Subid
 +35      ;
           IF $LENGTH(TEXT2)'>MAXLEN
               Begin DoDot:1
 +36               DO LAH(SUB,1,TEXT2)
               End DoDot:1
 +37      ;
           IF $LENGTH(TEXT2)>MAXLEN
               Begin DoDot:1
 +38               NEW I,Y,PASS
 +39               SET PASS=$LENGTH(TEXT2)\MAXLEN
 +40               if ($LENGTH(TEXT2)#MAXLEN)>0
                       SET PASS=PASS+1
 +41      ;
                   FOR I=0:1:PASS-1
                       SET Y=(I*MAXLEN)+1
                       Begin DoDot:2
 +42                       DO LAH(SUB,1,$EXTRACT(TEXT2,Y,(Y+MAXLEN)-1))
 +43                       SET Y=Y+MAXLEN
 +44                       SET ISQN2=ISQN2+1
 +45                       SET SUB="7,"_ISQN2_",0"
                       End DoDot:2
 +46      ;
               End DoDot:1
 +47       DO NTE^LA7VIN71(LA76247,ISQN)
 +48       QUIT 
 +49      ;
13        ;
 +1       ; Process Parasite's Stage
 +2        NEW X,SUB,ISQN2,ISQN3,SEQ2,LADATA,STAGE
 +3        SET ISQN2=0
 +4        IF SUBID'=""
               SET ISQN2=$$SUBID^LAGEN(LWL,LA7ISQN,"MI",6,SUBID)
 +5        IF SUBID=""
               IF $GET(PSUBID)'=""
                   SET ISQN2=$$SUBID^LAGEN(LWL,1,LA7ISQN,"MI",6,PSUBID)
 +6       ;
           IF 'ISQN2
               Begin DoDot:1
 +7                DO SUBIDERR^LA7VIN71
               End DoDot:1
               QUIT 
 +8       ;
 +9        DO LAH("6,0",-1,"")
 +10       SET SUB="6,"_ISQN2_",1,0"
 +11      ;@=force empty field
           DO LAH(SUB,1,"@")
 +12       SET ISQN3=+$ORDER(^LAH(LWL,1,LA7ISQN,"MI",6,ISQN2,1,"A"),-1)+1
 +13      ; save this for processing parasite stage count
           SET LA7VPSTG=ISQN3
 +14       SET STAGE=""
 +15       KILL LADATA
 +16      ;
           IF $GET(LA7SCT)'=""
               Begin DoDot:1
 +17               SET STAGE=$$SCT2PSTG^LA7VHLU6(LA7SCT,"","SCT",DT)
 +18               DO CHK^DIE(63.35,.01,"",STAGE,.LADATA)
 +19               IF LADATA="^"
                       SET STAGE=""
               End DoDot:1
 +20      ;
           IF $GET(LA7SCT)=""
               Begin DoDot:1
 +21      ; Try Set of Codes translation
 +22               DO CHK^DIE(63.35,.01,"",OBX5,.LADATA)
 +23               IF LADATA'="^"
                       SET STAGE=LADATA
               End DoDot:1
 +24      ;
 +25      ; file if stage found
 +26      ;
           IF STAGE'=""
               Begin DoDot:1
 +27               NEW STOP,SEQ
 +28               SET SEQ=0
 +29               SET X=""
 +30               SET STOP=0
 +31      ; Find existing stage entry if already in LAH
 +32      ;
                   FOR 
                       SET SEQ=$ORDER(^LAH(LWL,1,LA7ISQN,"MI",6,ISQN2,1,SEQ))
                       if 'SEQ
                           QUIT 
                       Begin DoDot:2
 +33                       SET X=$GET(^LAH(LWL,1,LA7ISQN,"MI",6,ISQN2,1,SEQ,0))
 +34                       IF $PIECE(X,"^",1)=STAGE
                               SET STOP=1
                               SET ISQN3=SEQ
                       End DoDot:2
                       if STOP
                           QUIT 
 +35      ;
 +36      ; save for processing Parasite Stage Qty
                   SET LA7VPSTG=ISQN3
 +37               SET SUB="6,"_ISQN2_",1,"_ISQN3_",0"
 +38               SET X=STAGE
 +39               DO LAH(SUB,1,X)
 +40      ;
 +41               SET SUB="6,"_ISQN2_",1,"_ISQN3_",0,.01"
 +42               IF $GET(LA7NLT)'=""
                       DO LAH(SUB,2,LA7NLT)
 +43      ;SCT stage code
                   IF $GET(LA7SCT)'=""
                       DO LAH(SUB,3,LA7SCT)
 +44      ;
 +45               SET SUB="6,"_ISQN2_",1,"_ISQN3_",0,.01,0"
 +46      ;obsv status
                   DO LAH(SUB,1,OBX11)
 +47               SET SUB="6,"_ISQN2_",1,"_ISQN3_",0,.01,1"
 +48      ; perf lab
                   DO LAH(SUB,1,LA74)
 +49               SET X=$PIECE(LA7RO,"^",3)
 +50      ; resp observer
                   DO LAH(SUB,2,X)
               End DoDot:1
 +51      ;
 +52      ;
           IF STAGE=""
               IF LADATA="^"
                   Begin DoDot:1
 +53                   SET ISQN3=""
 +54                   SET X=SUBID
 +55                   if X=""
                           SET X=$GET(PSUBID)
 +56                   if X'=""
                           SET X="["_X_"]UNKNOWN STAGE QTY: "
 +57                   DO 12(X_$$UNESC^LA7VHLU3(OBX5,LA7FS_LA7ECH))
 +58                   QUIT 
 +59      ;
                   End DoDot:1
 +60      ;
 +61      ; for NTE info need to pass back ISQN3 also
 +62       IF ISQN3
               SET LA7RMK(0,0)=LA76247_"^"_ISQN2_","_ISQN3
 +63       IF 'ISQN3
               DO NTE
 +64       QUIT 
 +65      ;
14        ;
 +1       ; Process Parasite Stage Quantity
 +2        NEW X,SUB,ISQN2,ISQN3
 +3        SET ISQN2=0
 +4        IF SUBID'=""
               SET ISQN2=$$SUBID^LAGEN(LWL,LA7ISQN,"MI",6,SUBID)
 +5        IF SUBID=""
               IF $GET(PSUBID)'=""
                   SET ISQN2=$$SUBID^LAGEN(LWL,LA7ISQN,"MI",6,PSUBID)
 +6       ;
           IF 'ISQN2
               Begin DoDot:1
 +7                DO SUBIDERR^LA7VIN71
               End DoDot:1
               QUIT 
 +8       ;
 +9       ; use associated "Parasite Stage" ISQN3 from previous OBX
 +10      ;top level variable
           SET ISQN3=+$GET(LA7VPSTG)
 +11      ; Stage filed so now qty can be filed
 +12      ;
           IF ISQN3
               Begin DoDot:1
 +13               SET SUB="6,"_ISQN2_",1,"_ISQN3_",0"
 +14               DO LAH(SUB,2,OBX5)
               End DoDot:1
 +15      ;
 +16      ;
           IF 'ISQN3
               Begin DoDot:1
 +17      ;file as comment in #63.36
 +18      ;if we couldnt file the stage we cant file the qty
 +19               NEW MAXLEN,SEQ2
 +20      ; COMMENTS field size
                   SET MAXLEN=68
 +21               SET SEQ2=+$ORDER(^LAH(LWL,LA7ISQN,"MI",ISQN2,7,"A"),-1)+1
 +22               SET SUB="7,"_SEQ2_",0"
 +23      ; insert separator line if needed
 +24               IF SEQ2>1
                       DO LAH(SUB,1,"")
                       SET SEQ2=SEQ2+1
                       SET SUB="7,"_SEQ2_",0"
 +25      ; modify MAXLEN for prefixed Subid
 +26               SET X=SUBID
 +27               if X=""
                       SET X=$GET(PSUBID)
 +28               if X'=""
                       SET X="["_X_"]"
 +29               SET X=X_"UNKNOWN STAGE QTY: "
 +30      ;
                   IF $LENGTH(X_OBX5)'>MAXLEN
                       Begin DoDot:2
 +31                       DO LAH(SUB,1,X_OBX5)
                       End DoDot:2
 +32      ;
                   IF $LENGTH(X_OBX5)>MAXLEN
                       Begin DoDot:2
 +33                       NEW I,Y,PASS
 +34                       SET X=X_OBX5
 +35                       SET PASS=$LENGTH(X)\MAXLEN
 +36                       if ($LENGTH(X)#MAXLEN)>0
                               SET PASS=PASS+1
 +37      ;
                           FOR I=0:1:PASS-1
                               SET Y=(I*MAXLEN)+1
                               Begin DoDot:3
 +38      ;subid prefix
                                   IF I=0
                                       DO LAH(SUB,1,$EXTRACT(X,Y,(Y+MAXLEN)-1))
 +39                               IF I>0
                                       DO LAH(SUB,1,$EXTRACT(X,Y,(Y+MAXLEN)-1))
 +40                               SET Y=Y+MAXLEN
 +41                               SET SEQ2=SEQ2+1
 +42                               SET SUB="7,"_SEQ2_",0"
                               End DoDot:3
 +43      ;
                       End DoDot:2
 +44      ;
               End DoDot:1
 +45      ;
 +46      ; For NTE need to send back ISQN3 also
 +47       IF ISQN3
               SET LA7RMK(0,0)=LA76247_"^"_ISQN2_","_ISQN3
 +48       IF 'ISQN3
               DO NTE
 +49       QUIT 
 +50      ;
DDERR     ;
 +1       ; If unknown storage location flag error
 +2       ; No File #63 field mapping found for OBX-3
 +3        NEW LA7OBX3
 +4       ;needed for log
           SET LA7OBX3=OBX3
 +5        DO CREATE^LA7LOG(201)
 +6        SET LA7KILAH=1
           SET LA7QUIT=2
 +7        QUIT 
 +8       ;
LAH(LASUB,LAP,LAVAL) ;
 +1       ; Convenience method
 +2        IF LAP'=-1
               IF LAVAL=""
                   QUIT 
 +3        DO LAH^LAGEN(+$GET(LWL),+$GET(LA7ISQN),"MI",LASUB,LAP,LAVAL)
 +4        QUIT 
 +5       ;
NTE       ;
 +1       ; Convenience method
 +2        DO NTE^LA7VIN71(LA76247,ISQN2)
 +3        QUIT