- 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 Mar 13, 2025@20:45:15 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