- PXRMFNFT ; SLC/PKR - Process found/not found text. ;05/21/2010
- ;;2.0;CLINICAL REMINDERS;**4,12,16**;Feb 04, 2005;Build 119
- ;
- ;===================================================
- AGE(DFN,DEFARR,FIEVAL,NTXT) ;Output the age match/no match
- ;text.
- N CTIUO,FI,IC,LC,NIN,NLINES,TEXT,TEXTIN
- I '$D(FIEVAL("AGE")) Q
- S NLINES=0
- S IC=""
- F S IC=$O(FIEVAL("AGE",IC)) Q:IC="" D
- . S FI=$S(FIEVAL("AGE",IC):1,1:2)
- . S NIN=$P(DEFARR(7,IC,3),U,FI)
- . I +NIN=0 Q
- . K TEXTIN
- .;If CTIUO is true the text contains a TIU object.
- . S CTIUO=$S(NIN["T":1,1:0)
- . I CTIUO D
- .. N VSTR S VSTR=""
- ..;TIU expansion expects the trailing 0, i.e. TEXTIN(N,0).
- .. F LC=1:1:+NIN S TEXTIN(LC)=^PXD(811.9,PXRMITEM,7,IC,FI,LC,0)
- .. S NIN=NIN+1,TEXTIN(NIN)="\\"
- .. D FNFTXTO(1,NIN,.TEXTIN,DFN,VSTR,.NLINES,.TEXT)
- . I 'CTIUO D
- .. F LC=1:1:NIN S TEXTIN(LC)=^PXD(811.9,PXRMITEM,7,IC,FI,LC,0)
- .. S NIN=NIN+1,TEXTIN(NIN)="\\"
- .. D FNFTXTR(1,NIN,.TEXTIN,.NLINES,.TEXT)
- D COPYTXT^PXRMOUTU(.NTXT,NLINES,.TEXT)
- Q
- ;
- ;===================================================
- FINDING(INDENT,DFN,FINDING,IFIEVAL,NLINES,TEXT) ;Output the finding found/not
- ;found text.
- N CTIUO,FI,LC,NIN,NODE,TEMP,TEXTIN
- S FI=$S(IFIEVAL:1,1:2)
- S NODE=$S(FINDING["FF":25,1:20)
- S TEMP=$G(DEFARR(NODE,FINDING,6))
- S NIN=$P(TEMP,U,FI)
- I +NIN=0 Q
- I FINDING["FF" S FINDING=$P(FINDING,"FF",2)
- S CTIUO=$S(NIN["T":1,1:0)
- I CTIUO D
- . S NIN=+NIN
- . N VSTR
- . F LC=1:1:+NIN S TEXTIN(LC)=^PXD(811.9,PXRMITEM,NODE,FINDING,FI,LC,0)
- . I $D(IFIEVAL("VISIT")) D
- .. N TEMP,VDATE,VLOC,VSC
- .. S TEMP=^AUPNVSIT(IFIEVAL("VISIT"),0)
- .. S VDATE=$P(TEMP,U,1)
- .. S VLOC=$P(TEMP,U,22)
- .. S VSC=$P(TEMP,U,7)
- .. S VSTR=VLOC_";"_VDATE_";"_VSC
- . E S VSTR=""
- . S NIN=NIN+1,TEXTIN(NIN)="\\"
- . D FNFTXTO(INDENT,NIN,.TEXTIN,DFN,VSTR,.NLINES,.TEXT)
- I 'CTIUO D
- . F LC=1:1:NIN S TEXTIN(LC)=^PXD(811.9,PXRMITEM,NODE,FINDING,FI,LC,0)
- . S NIN=NIN+1,TEXTIN(NIN)="\\"
- . D FNFTXTR(INDENT,NIN,.TEXTIN,.NLINES,.TEXT)
- Q
- ;
- ;===================================================
- FNFTXTO(INDENT,NIN,TEXTIN,DFN,VSTR,NLINES,TEXT) ;Load found/not found text
- ;that contains TIU objects.
- N IND,INOBJECT,JND,OLINE,NEWLINE,NOL,NOUT,NUML,TA,TEXTOUT,TIN
- ;Make sure this works if it is being called a part of an object.
- I $D(^TMP("TIUBOIL",$J)) D
- . K ^TMP("PXRMTIUBOIL",$J)
- . M ^TMP("PXRMTIUBOIL",$J)=^TMP("TIUBOIL",$J)
- . S INOBJECT=1
- E S INOBJECT=0
- S NUML=0
- F IND=1:1:NIN D
- . I TEXTIN(IND)'["|" S NUML=NUML+1,TIN(NUML)=TEXTIN(IND) Q
- . S NEWLINE=$S(TEXTIN(IND)["|_\\":"\\",1:"")
- . S OLINE(1,0)=$S(NEWLINE'="":$$STRREP^PXRMUTIL(TEXTIN(IND),"_\\",""),1:TEXTIN(IND))
- . K ^TMP("TIUBOIL",$J)
- . D BLRPLT^TIUSRVD(.TA,"",DFN,VSTR,"OLINE")
- . S NOL=$P(^TMP("TIUBOIL",$J,0),U,3)
- . F JND=1:1:NOL S NUML=NUML+1,TIN(NUML)=^TMP("TIUBOIL",$J,JND,0)_NEWLINE
- D FORMAT^PXRMTEXT(INDENT,PXRMRM,NUML,.TIN,.NOUT,.TEXTOUT)
- F LC=1:1:NOUT S NLINES=NLINES+1,TEXT(NLINES)=TEXTOUT(LC)
- K ^TMP("TIUBOIL",$J)
- I INOBJECT M ^TMP("TIUBOIL",$J)=^TMP("PXRMTIUBOIL",$J) K ^TMP("PXRMTIUBOIL",$J)
- Q
- ;
- ;===================================================
- FNFTXTR(INDENT,NIN,TEXTIN,NLINES,TEXT) ;Load regular found/not found text
- ;that does not contain TIU objects.
- N JND,NOUT,TEXTOUT
- D FORMAT^PXRMTEXT(INDENT,PXRMRM,NIN,.TEXTIN,.NOUT,.TEXTOUT)
- F JND=1:1:NOUT S NLINES=NLINES+1,TEXT(NLINES)=TEXTOUT(JND)
- Q
- ;
- ;===================================================
- LOGIC(DFN,LOGSTR,LOGTYPE,TTYPE,DEFARR,NTXT) ;Output the detailed
- ;logic found/not found text.
- I LOGSTR="" Q
- N CTIUO,FI,LC,NIN,NLINES,SUB,TEXT,TEXTIN
- I TTYPE="S" S NIN=$S(LOGTYPE="PCL":DEFARR(72),LOGTYPE="RES":DEFARR(77),1:0)
- E S NIN=$S(LOGTYPE="PCL":DEFARR(62),LOGTYPE="RES":DEFARR(67),1:0)
- I NIN="" Q
- S FI=$P(LOGSTR,U,1)
- S NIN=$S(FI=1:$P(NIN,U,1),FI=0:$P(NIN,U,2),1:0)
- I +NIN=0 Q
- I TTYPE="S" D
- . I LOGTYPE="PCL",FI=1 S SUB=70
- . I LOGTYPE="PCL",FI=0 S SUB=71
- . I LOGTYPE="RES",FI=1 S SUB=75
- . I LOGTYPE="RES",FI=0 S SUB=76
- E D
- . I LOGTYPE="PCL",FI=1 S SUB=60
- . I LOGTYPE="PCL",FI=0 S SUB=61
- . I LOGTYPE="RES",FI=1 S SUB=65
- . I LOGTYPE="RES",FI=0 S SUB=66
- S NLINES=0
- S CTIUO=$S(NIN["T":1,1:0)
- I CTIUO D
- . N VSTR S VSTR=""
- . F LC=1:1:+NIN S TEXTIN(LC)=^PXD(811.9,PXRMITEM,SUB,LC,0)
- . S NIN=NIN+1,TEXTIN(NIN)="\\"
- . D FNFTXTO(1,NIN,.TEXTIN,DFN,VSTR,.NLINES,.TEXT)
- I 'CTIUO D
- . F LC=1:1:NIN S TEXTIN(LC)=^PXD(811.9,PXRMITEM,SUB,LC,0)
- . S NIN=NIN+1,TEXTIN(NIN)="\\"
- . D FNFTXTR(1,NIN,.TEXTIN,.NLINES,.TEXT)
- D COPYTXT^PXRMOUTU(.NTXT,NLINES,.TEXT)
- Q
- ;
- ;===================================================
- SNMLA(RIEN) ;Set the number of match lines for the age match text.
- N IND,JND,LC,MATCHLC,NPIPE,RES,WMSG
- S IND=0
- F S IND=+$O(^PXD(811.9,RIEN,7,IND)) Q:IND=0 D
- .;Age match text
- . S (JND,LC,NPIPE)=0
- . F S JND=$O(^PXD(811.9,RIEN,7,IND,1,JND)) Q:JND="" D
- .. S NPIPE=NPIPE+$L(^PXD(811.9,RIEN,7,IND,1,JND,0),"|")-1
- .. S LC=LC+1
- . S MATCHLC=LC
- . I (NPIPE#2)=1 D
- .. S WMSG="match text for age range "_IND
- .. D TIUOBJW(WMSG,NPIPE)
- . I NPIPE>1 S MATCHLC=MATCHLC_"T"
- .;Age no match text
- . S (JND,LC,NPIPE)=0
- . F S JND=$O(^PXD(811.9,RIEN,7,IND,2,JND)) Q:JND="" D
- .. S NPIPE=NPIPE+$L(^PXD(811.9,RIEN,7,IND,2,JND,0),"|")-1
- .. S LC=LC+1
- . I (NPIPE#2)=1 D
- .. S WMSG="no match text for age range "_IND
- .. D TIUOBJW(WMSG,NPIPE)
- . I NPIPE>1 S LC=LC_"T"
- . S ^PXD(811.9,RIEN,7,IND,3)=MATCHLC_U_LC
- Q
- ;
- ;===================================================
- SNMLF(RIEN,NODE) ;Set the number of found lines for the found text.
- ;For regular and functional findings.
- N IND,JND,LC,NNAME,NFL,NPIPE,RES,WMSG
- S NNAME=$S(NODE=20:"finding",NODE=25:"function finding",1:"?")
- S IND=0
- F S IND=+$O(^PXD(811.9,RIEN,NODE,IND)) Q:IND=0 D
- .;Found text
- . S (JND,LC,NPIPE)=0
- . F S JND=$O(^PXD(811.9,RIEN,NODE,IND,1,JND)) Q:JND="" D
- .. S NPIPE=NPIPE+$L(^PXD(811.9,RIEN,NODE,IND,1,JND,0),"|")-1
- .. S LC=LC+1
- . S NFL=LC
- . I (NPIPE#2)=1 D
- .. S WMSG="found text for "_NNAME_" "_IND
- .. D TIUOBJW(WMSG,NPIPE)
- . I NPIPE>1 S NFL=NFL_"T"
- .;Not found text
- . S (JND,LC,NPIPE)=0
- . F S JND=$O(^PXD(811.9,RIEN,NODE,IND,2,JND)) Q:JND="" D
- .. S NPIPE=NPIPE+$L(^PXD(811.9,RIEN,NODE,IND,2,JND,0),"|")-1
- .. S LC=LC+1
- . I (NPIPE#2)=1 D
- .. S WMSG="not found text for "_NNAME_" "_IND
- .. D TIUOBJW(WMSG,NPIPE)
- . I NPIPE>1 S LC=LC_"T"
- . S ^PXD(811.9,RIEN,NODE,IND,6)=NFL_U_LC
- Q
- ;
- ;===================================================
- SNMLL(RIEN) ;Set the number of lines for the logic found/not found
- ;text. Append a "T" to the number of lines if the text contains
- ;a TIU object.
- N CSTR,IND,LC,NPIPE,RES,SUB,TTYPE
- ;SUB=60 General cohort found text
- ;SUB=61 General cohort not found text
- ;SUB=65 General resolution found text
- ;SUB=66 General resolution not found text
- ;SUB=70 Summary cohort found text
- ;SUB=71 Summary cohort not found text
- ;SUB=75 Summary resolution found text
- ;SUB=76 Summary resolution not found text
- F SUB=60,61,65,66,70,71,75,76 D
- . S (IND,LC,NPIPE)=0
- . F S IND=$O(^PXD(811.9,RIEN,SUB,IND)) Q:IND="" D
- .. S NPIPE=NPIPE+$L(^PXD(811.9,RIEN,SUB,IND,0),"|")-1
- .. S LC=LC+1
- . I (NPIPE#2)=1 D
- .. I SUB=60 S TTYPE="general cohort found text"
- .. I SUB=61 S TTYPE="general cohort not found text"
- .. I SUB=65 S TTYPE="general resolution found text"
- .. I SUB=66 S TTYPE="general resolution not found text"
- .. I SUB=70 S TTYPE="summary cohort found text"
- .. I SUB=71 S TTYPE="summary cohort not found text"
- .. I SUB=75 S TTYPE="summary resolution found text"
- .. I SUB=76 S TTYPE="summary resolution not found text"
- .. D TIUOBJW(TTYPE,NPIPE)
- . I NPIPE>1 S LC=LC_"T"
- . I SUB=60 S CSTR=LC
- . I SUB=61 S ^PXD(811.9,RIEN,62)=CSTR_U_LC
- . I SUB=65 S CSTR=LC
- . I SUB=66 S ^PXD(811.9,RIEN,67)=CSTR_U_LC
- . I SUB=70 S CSTR=LC
- . I SUB=71 S ^PXD(811.9,RIEN,72)=CSTR_U_LC
- . I SUB=75 S CSTR=LC
- . I SUB=76 S ^PXD(811.9,RIEN,77)=CSTR_U_LC
- Q
- ;
- ;===================================================
- TIUOBJW(WMSG,NPIPE) ;Odd number of "|" characters in text, issue
- ;a warning that TIU OBJ expansion will not work.
- N TEXT
- S TEXT(1)=""
- S TEXT(2)="Warning, "_WMSG_" has "_NPIPE_" ""|"" characters."
- S TEXT(3)="Because this is an odd number, TIU Object expansion will not work."
- D MES^XPDUTL(.TEXT)
- Q
- ;
- PXRMFNFT ; SLC/PKR - Process found/not found text. ;05/21/2010
- +1 ;;2.0;CLINICAL REMINDERS;**4,12,16**;Feb 04, 2005;Build 119
- +2 ;
- +3 ;===================================================
- AGE(DFN,DEFARR,FIEVAL,NTXT) ;Output the age match/no match
- +1 ;text.
- +2 NEW CTIUO,FI,IC,LC,NIN,NLINES,TEXT,TEXTIN
- +3 IF '$DATA(FIEVAL("AGE"))
- QUIT
- +4 SET NLINES=0
- +5 SET IC=""
- +6 FOR
- SET IC=$ORDER(FIEVAL("AGE",IC))
- IF IC=""
- QUIT
- Begin DoDot:1
- +7 SET FI=$SELECT(FIEVAL("AGE",IC):1,1:2)
- +8 SET NIN=$PIECE(DEFARR(7,IC,3),U,FI)
- +9 IF +NIN=0
- QUIT
- +10 KILL TEXTIN
- +11 ;If CTIUO is true the text contains a TIU object.
- +12 SET CTIUO=$SELECT(NIN["T":1,1:0)
- +13 IF CTIUO
- Begin DoDot:2
- +14 NEW VSTR
- SET VSTR=""
- +15 ;TIU expansion expects the trailing 0, i.e. TEXTIN(N,0).
- +16 FOR LC=1:1:+NIN
- SET TEXTIN(LC)=^PXD(811.9,PXRMITEM,7,IC,FI,LC,0)
- +17 SET NIN=NIN+1
- SET TEXTIN(NIN)="\\"
- +18 DO FNFTXTO(1,NIN,.TEXTIN,DFN,VSTR,.NLINES,.TEXT)
- End DoDot:2
- +19 IF 'CTIUO
- Begin DoDot:2
- +20 FOR LC=1:1:NIN
- SET TEXTIN(LC)=^PXD(811.9,PXRMITEM,7,IC,FI,LC,0)
- +21 SET NIN=NIN+1
- SET TEXTIN(NIN)="\\"
- +22 DO FNFTXTR(1,NIN,.TEXTIN,.NLINES,.TEXT)
- End DoDot:2
- End DoDot:1
- +23 DO COPYTXT^PXRMOUTU(.NTXT,NLINES,.TEXT)
- +24 QUIT
- +25 ;
- +26 ;===================================================
- FINDING(INDENT,DFN,FINDING,IFIEVAL,NLINES,TEXT) ;Output the finding found/not
- +1 ;found text.
- +2 NEW CTIUO,FI,LC,NIN,NODE,TEMP,TEXTIN
- +3 SET FI=$SELECT(IFIEVAL:1,1:2)
- +4 SET NODE=$SELECT(FINDING["FF":25,1:20)
- +5 SET TEMP=$GET(DEFARR(NODE,FINDING,6))
- +6 SET NIN=$PIECE(TEMP,U,FI)
- +7 IF +NIN=0
- QUIT
- +8 IF FINDING["FF"
- SET FINDING=$PIECE(FINDING,"FF",2)
- +9 SET CTIUO=$SELECT(NIN["T":1,1:0)
- +10 IF CTIUO
- Begin DoDot:1
- +11 SET NIN=+NIN
- +12 NEW VSTR
- +13 FOR LC=1:1:+NIN
- SET TEXTIN(LC)=^PXD(811.9,PXRMITEM,NODE,FINDING,FI,LC,0)
- +14 IF $DATA(IFIEVAL("VISIT"))
- Begin DoDot:2
- +15 NEW TEMP,VDATE,VLOC,VSC
- +16 SET TEMP=^AUPNVSIT(IFIEVAL("VISIT"),0)
- +17 SET VDATE=$PIECE(TEMP,U,1)
- +18 SET VLOC=$PIECE(TEMP,U,22)
- +19 SET VSC=$PIECE(TEMP,U,7)
- +20 SET VSTR=VLOC_";"_VDATE_";"_VSC
- End DoDot:2
- +21 IF '$TEST
- SET VSTR=""
- +22 SET NIN=NIN+1
- SET TEXTIN(NIN)="\\"
- +23 DO FNFTXTO(INDENT,NIN,.TEXTIN,DFN,VSTR,.NLINES,.TEXT)
- End DoDot:1
- +24 IF 'CTIUO
- Begin DoDot:1
- +25 FOR LC=1:1:NIN
- SET TEXTIN(LC)=^PXD(811.9,PXRMITEM,NODE,FINDING,FI,LC,0)
- +26 SET NIN=NIN+1
- SET TEXTIN(NIN)="\\"
- +27 DO FNFTXTR(INDENT,NIN,.TEXTIN,.NLINES,.TEXT)
- End DoDot:1
- +28 QUIT
- +29 ;
- +30 ;===================================================
- FNFTXTO(INDENT,NIN,TEXTIN,DFN,VSTR,NLINES,TEXT) ;Load found/not found text
- +1 ;that contains TIU objects.
- +2 NEW IND,INOBJECT,JND,OLINE,NEWLINE,NOL,NOUT,NUML,TA,TEXTOUT,TIN
- +3 ;Make sure this works if it is being called a part of an object.
- +4 IF $DATA(^TMP("TIUBOIL",$JOB))
- Begin DoDot:1
- +5 KILL ^TMP("PXRMTIUBOIL",$JOB)
- +6 MERGE ^TMP("PXRMTIUBOIL",$JOB)=^TMP("TIUBOIL",$JOB)
- +7 SET INOBJECT=1
- End DoDot:1
- +8 IF '$TEST
- SET INOBJECT=0
- +9 SET NUML=0
- +10 FOR IND=1:1:NIN
- Begin DoDot:1
- +11 IF TEXTIN(IND)'["|"
- SET NUML=NUML+1
- SET TIN(NUML)=TEXTIN(IND)
- QUIT
- +12 SET NEWLINE=$SELECT(TEXTIN(IND)["|_\\":"\\",1:"")
- +13 SET OLINE(1,0)=$SELECT(NEWLINE'="":$$STRREP^PXRMUTIL(TEXTIN(IND),"_\\",""),1:TEXTIN(IND))
- +14 KILL ^TMP("TIUBOIL",$JOB)
- +15 DO BLRPLT^TIUSRVD(.TA,"",DFN,VSTR,"OLINE")
- +16 SET NOL=$PIECE(^TMP("TIUBOIL",$JOB,0),U,3)
- +17 FOR JND=1:1:NOL
- SET NUML=NUML+1
- SET TIN(NUML)=^TMP("TIUBOIL",$JOB,JND,0)_NEWLINE
- End DoDot:1
- +18 DO FORMAT^PXRMTEXT(INDENT,PXRMRM,NUML,.TIN,.NOUT,.TEXTOUT)
- +19 FOR LC=1:1:NOUT
- SET NLINES=NLINES+1
- SET TEXT(NLINES)=TEXTOUT(LC)
- +20 KILL ^TMP("TIUBOIL",$JOB)
- +21 IF INOBJECT
- MERGE ^TMP("TIUBOIL",$JOB)=^TMP("PXRMTIUBOIL",$JOB)
- KILL ^TMP("PXRMTIUBOIL",$JOB)
- +22 QUIT
- +23 ;
- +24 ;===================================================
- FNFTXTR(INDENT,NIN,TEXTIN,NLINES,TEXT) ;Load regular found/not found text
- +1 ;that does not contain TIU objects.
- +2 NEW JND,NOUT,TEXTOUT
- +3 DO FORMAT^PXRMTEXT(INDENT,PXRMRM,NIN,.TEXTIN,.NOUT,.TEXTOUT)
- +4 FOR JND=1:1:NOUT
- SET NLINES=NLINES+1
- SET TEXT(NLINES)=TEXTOUT(JND)
- +5 QUIT
- +6 ;
- +7 ;===================================================
- LOGIC(DFN,LOGSTR,LOGTYPE,TTYPE,DEFARR,NTXT) ;Output the detailed
- +1 ;logic found/not found text.
- +2 IF LOGSTR=""
- QUIT
- +3 NEW CTIUO,FI,LC,NIN,NLINES,SUB,TEXT,TEXTIN
- +4 IF TTYPE="S"
- SET NIN=$SELECT(LOGTYPE="PCL":DEFARR(72),LOGTYPE="RES":DEFARR(77),1:0)
- +5 IF '$TEST
- SET NIN=$SELECT(LOGTYPE="PCL":DEFARR(62),LOGTYPE="RES":DEFARR(67),1:0)
- +6 IF NIN=""
- QUIT
- +7 SET FI=$PIECE(LOGSTR,U,1)
- +8 SET NIN=$SELECT(FI=1:$PIECE(NIN,U,1),FI=0:$PIECE(NIN,U,2),1:0)
- +9 IF +NIN=0
- QUIT
- +10 IF TTYPE="S"
- Begin DoDot:1
- +11 IF LOGTYPE="PCL"
- IF FI=1
- SET SUB=70
- +12 IF LOGTYPE="PCL"
- IF FI=0
- SET SUB=71
- +13 IF LOGTYPE="RES"
- IF FI=1
- SET SUB=75
- +14 IF LOGTYPE="RES"
- IF FI=0
- SET SUB=76
- End DoDot:1
- +15 IF '$TEST
- Begin DoDot:1
- +16 IF LOGTYPE="PCL"
- IF FI=1
- SET SUB=60
- +17 IF LOGTYPE="PCL"
- IF FI=0
- SET SUB=61
- +18 IF LOGTYPE="RES"
- IF FI=1
- SET SUB=65
- +19 IF LOGTYPE="RES"
- IF FI=0
- SET SUB=66
- End DoDot:1
- +20 SET NLINES=0
- +21 SET CTIUO=$SELECT(NIN["T":1,1:0)
- +22 IF CTIUO
- Begin DoDot:1
- +23 NEW VSTR
- SET VSTR=""
- +24 FOR LC=1:1:+NIN
- SET TEXTIN(LC)=^PXD(811.9,PXRMITEM,SUB,LC,0)
- +25 SET NIN=NIN+1
- SET TEXTIN(NIN)="\\"
- +26 DO FNFTXTO(1,NIN,.TEXTIN,DFN,VSTR,.NLINES,.TEXT)
- End DoDot:1
- +27 IF 'CTIUO
- Begin DoDot:1
- +28 FOR LC=1:1:NIN
- SET TEXTIN(LC)=^PXD(811.9,PXRMITEM,SUB,LC,0)
- +29 SET NIN=NIN+1
- SET TEXTIN(NIN)="\\"
- +30 DO FNFTXTR(1,NIN,.TEXTIN,.NLINES,.TEXT)
- End DoDot:1
- +31 DO COPYTXT^PXRMOUTU(.NTXT,NLINES,.TEXT)
- +32 QUIT
- +33 ;
- +34 ;===================================================
- SNMLA(RIEN) ;Set the number of match lines for the age match text.
- +1 NEW IND,JND,LC,MATCHLC,NPIPE,RES,WMSG
- +2 SET IND=0
- +3 FOR
- SET IND=+$ORDER(^PXD(811.9,RIEN,7,IND))
- IF IND=0
- QUIT
- Begin DoDot:1
- +4 ;Age match text
- +5 SET (JND,LC,NPIPE)=0
- +6 FOR
- SET JND=$ORDER(^PXD(811.9,RIEN,7,IND,1,JND))
- IF JND=""
- QUIT
- Begin DoDot:2
- +7 SET NPIPE=NPIPE+$LENGTH(^PXD(811.9,RIEN,7,IND,1,JND,0),"|")-1
- +8 SET LC=LC+1
- End DoDot:2
- +9 SET MATCHLC=LC
- +10 IF (NPIPE#2)=1
- Begin DoDot:2
- +11 SET WMSG="match text for age range "_IND
- +12 DO TIUOBJW(WMSG,NPIPE)
- End DoDot:2
- +13 IF NPIPE>1
- SET MATCHLC=MATCHLC_"T"
- +14 ;Age no match text
- +15 SET (JND,LC,NPIPE)=0
- +16 FOR
- SET JND=$ORDER(^PXD(811.9,RIEN,7,IND,2,JND))
- IF JND=""
- QUIT
- Begin DoDot:2
- +17 SET NPIPE=NPIPE+$LENGTH(^PXD(811.9,RIEN,7,IND,2,JND,0),"|")-1
- +18 SET LC=LC+1
- End DoDot:2
- +19 IF (NPIPE#2)=1
- Begin DoDot:2
- +20 SET WMSG="no match text for age range "_IND
- +21 DO TIUOBJW(WMSG,NPIPE)
- End DoDot:2
- +22 IF NPIPE>1
- SET LC=LC_"T"
- +23 SET ^PXD(811.9,RIEN,7,IND,3)=MATCHLC_U_LC
- End DoDot:1
- +24 QUIT
- +25 ;
- +26 ;===================================================
- SNMLF(RIEN,NODE) ;Set the number of found lines for the found text.
- +1 ;For regular and functional findings.
- +2 NEW IND,JND,LC,NNAME,NFL,NPIPE,RES,WMSG
- +3 SET NNAME=$SELECT(NODE=20:"finding",NODE=25:"function finding",1:"?")
- +4 SET IND=0
- +5 FOR
- SET IND=+$ORDER(^PXD(811.9,RIEN,NODE,IND))
- IF IND=0
- QUIT
- Begin DoDot:1
- +6 ;Found text
- +7 SET (JND,LC,NPIPE)=0
- +8 FOR
- SET JND=$ORDER(^PXD(811.9,RIEN,NODE,IND,1,JND))
- IF JND=""
- QUIT
- Begin DoDot:2
- +9 SET NPIPE=NPIPE+$LENGTH(^PXD(811.9,RIEN,NODE,IND,1,JND,0),"|")-1
- +10 SET LC=LC+1
- End DoDot:2
- +11 SET NFL=LC
- +12 IF (NPIPE#2)=1
- Begin DoDot:2
- +13 SET WMSG="found text for "_NNAME_" "_IND
- +14 DO TIUOBJW(WMSG,NPIPE)
- End DoDot:2
- +15 IF NPIPE>1
- SET NFL=NFL_"T"
- +16 ;Not found text
- +17 SET (JND,LC,NPIPE)=0
- +18 FOR
- SET JND=$ORDER(^PXD(811.9,RIEN,NODE,IND,2,JND))
- IF JND=""
- QUIT
- Begin DoDot:2
- +19 SET NPIPE=NPIPE+$LENGTH(^PXD(811.9,RIEN,NODE,IND,2,JND,0),"|")-1
- +20 SET LC=LC+1
- End DoDot:2
- +21 IF (NPIPE#2)=1
- Begin DoDot:2
- +22 SET WMSG="not found text for "_NNAME_" "_IND
- +23 DO TIUOBJW(WMSG,NPIPE)
- End DoDot:2
- +24 IF NPIPE>1
- SET LC=LC_"T"
- +25 SET ^PXD(811.9,RIEN,NODE,IND,6)=NFL_U_LC
- End DoDot:1
- +26 QUIT
- +27 ;
- +28 ;===================================================
- SNMLL(RIEN) ;Set the number of lines for the logic found/not found
- +1 ;text. Append a "T" to the number of lines if the text contains
- +2 ;a TIU object.
- +3 NEW CSTR,IND,LC,NPIPE,RES,SUB,TTYPE
- +4 ;SUB=60 General cohort found text
- +5 ;SUB=61 General cohort not found text
- +6 ;SUB=65 General resolution found text
- +7 ;SUB=66 General resolution not found text
- +8 ;SUB=70 Summary cohort found text
- +9 ;SUB=71 Summary cohort not found text
- +10 ;SUB=75 Summary resolution found text
- +11 ;SUB=76 Summary resolution not found text
- +12 FOR SUB=60,61,65,66,70,71,75,76
- Begin DoDot:1
- +13 SET (IND,LC,NPIPE)=0
- +14 FOR
- SET IND=$ORDER(^PXD(811.9,RIEN,SUB,IND))
- IF IND=""
- QUIT
- Begin DoDot:2
- +15 SET NPIPE=NPIPE+$LENGTH(^PXD(811.9,RIEN,SUB,IND,0),"|")-1
- +16 SET LC=LC+1
- End DoDot:2
- +17 IF (NPIPE#2)=1
- Begin DoDot:2
- +18 IF SUB=60
- SET TTYPE="general cohort found text"
- +19 IF SUB=61
- SET TTYPE="general cohort not found text"
- +20 IF SUB=65
- SET TTYPE="general resolution found text"
- +21 IF SUB=66
- SET TTYPE="general resolution not found text"
- +22 IF SUB=70
- SET TTYPE="summary cohort found text"
- +23 IF SUB=71
- SET TTYPE="summary cohort not found text"
- +24 IF SUB=75
- SET TTYPE="summary resolution found text"
- +25 IF SUB=76
- SET TTYPE="summary resolution not found text"
- +26 DO TIUOBJW(TTYPE,NPIPE)
- End DoDot:2
- +27 IF NPIPE>1
- SET LC=LC_"T"
- +28 IF SUB=60
- SET CSTR=LC
- +29 IF SUB=61
- SET ^PXD(811.9,RIEN,62)=CSTR_U_LC
- +30 IF SUB=65
- SET CSTR=LC
- +31 IF SUB=66
- SET ^PXD(811.9,RIEN,67)=CSTR_U_LC
- +32 IF SUB=70
- SET CSTR=LC
- +33 IF SUB=71
- SET ^PXD(811.9,RIEN,72)=CSTR_U_LC
- +34 IF SUB=75
- SET CSTR=LC
- +35 IF SUB=76
- SET ^PXD(811.9,RIEN,77)=CSTR_U_LC
- End DoDot:1
- +36 QUIT
- +37 ;
- +38 ;===================================================
- TIUOBJW(WMSG,NPIPE) ;Odd number of "|" characters in text, issue
- +1 ;a warning that TIU OBJ expansion will not work.
- +2 NEW TEXT
- +3 SET TEXT(1)=""
- +4 SET TEXT(2)="Warning, "_WMSG_" has "_NPIPE_" ""|"" characters."
- +5 SET TEXT(3)="Because this is an odd number, TIU Object expansion will not work."
- +6 DO MES^XPDUTL(.TEXT)
- +7 QUIT
- +8 ;