- PXRMPTDF ;SLC/PKR/PJH - Reminder Inquiry print template routines. ;08/25/2020
- ;;2.0;CLINICAL REMINDERS;**4,6,12,46,65**;Feb 04, 2005;Build 438
- ;
- ;================================================
- PFIND ;Print the reminder definition finding multiple.
- N DIWF,FIELD,FILENUM,FINDING,FIND0,FIND3,FINDNAM,FL,HFCAT,HFIEN
- N IEN1,IND,INT,LEN,NL,OUTPUT,PAD,PADS,PARRAY
- N RJC,RFIND,RTERM,SCNT,SIEN,STAT0,TEMP,X
- ;If called by a FileMan print build the variable pointer list.
- I '$D(PXRMFVPL) N PXRMFVPL D BLDRLIST^PXRMVPTR(811.902,.01,.PXRMFVPL)
- ;No printing is done by PFIND it accumulates all output using ^DIWP.
- ;The print template outputs the text with ^DIWW.
- ;Because of the way DIWP works we need to format all the found and
- ;not found text first and store it in ^TMP.
- K ^TMP($J,"W")
- S FILENUM="811.902"
- S RJC=30,PAD=" ",PADS=""
- F IND=1:1:(RJC+2) S PADS=PADS_PAD
- S FINDING=0
- F S FINDING=$O(^PXD(811.9,D0,20,FINDING)) Q:+FINDING=0 D
- . D WPFORMAT(FINDING,20,RJC,1)
- . D WPFORMAT(FINDING,20,RJC,2)
- K ^UTILITY($J,"W")
- S FINDING=0
- F S FINDING=$O(^PXD(811.9,D0,25,FINDING)) Q:+FINDING=0 D
- . D WPFORMAT(FINDING,25,RJC,1)
- . D WPFORMAT(FINDING,25,RJC,2)
- . D WPFORMAT(FINDING,25,RJC,20)
- S DIWF="C80",DIWL=2
- K ^UTILITY($J,"W")
- S FINDING=0
- F S FINDING=$O(^PXD(811.9,D0,20,FINDING)) Q:+FINDING=0 D
- . S FIND0=^PXD(811.9,D0,20,FINDING,0)
- . S FIELD=$P(FIND0,U,1)
- . S RTERM=FIELD
- . S X=" "
- . D ^DIWP
- . S FINDNAM=$$ENTRYNAM^PXRMPTD2(FIELD)
- . I FINDNAM="" S FINDNAM="?"
- . S RFIND=$$GENIEN^PXRMPTD2(FINDING)
- . S X="---- Begin: "_FINDNAM_RFIND
- . D FORMATS^PXRMTEXT(2,75,X,.NL,.OUTPUT)
- . F IND=1:1:NL D
- .. S X=OUTPUT(IND)
- .. I IND=NL S X=X_" ",LEN=75-$L(X) F INT=1:1:LEN S X=X_"-"
- .. D ^DIWP
- .;
- . S X=$$RJ^XLFSTR("Finding Type:",RJC,PAD)
- . S X=X_" "_$$FTYPE^PXRMPTD2(FIELD,0)
- . D ^DIWP
- . I RFIND["HF" D
- .. S HFIEN=$P($P($P(RFIND,"HF",2),"(",2),")")
- .. S HFCAT=$P($G(^AUTTHF(HFIEN,0)),U,3)
- .. S HFCAT=$S(HFCAT="":"UNDEFINED",1:$P($G(^AUTTHF(HFCAT,0)),U,1))
- .. S X=$$RJ^XLFSTR("Health Factor Category:",RJC,PAD)
- .. S X=X_" "_HFCAT
- .. D ^DIWP
- .;
- . S FIELD=$P(FIND0,U,4)
- . I $L(FIELD)>0 D
- .. S X=$$RJ^XLFSTR("Match Frequency/Age:",RJC,PAD)
- .. S X=X_" "_$$GENFREQ^PXRMPTD2(FIND0)
- .. D ^DIWP
- .;
- . D SFDISP(FIND0,5,6,"Rank Frequency:",RJC,PAD,FILENUM)
- . D SFDISP(FIND0,6,7,"Use in Resolution Logic:",RJC,PAD,FILENUM)
- . D SFDISP(FIND0,7,8,"Use in Patient Cohort Logic:",RJC,PAD,FILENUM)
- . D DATE^PXRMPTD2(FIND0,8,9,"Beginning Date/Time:",RJC,PAD,FILENUM)
- . D DATE^PXRMPTD2(FIND0,11,12,"Ending Date/Time:",RJC,PAD,FILENUM)
- . D SFDISP(FIND0,14,17,"Occurrence Count:",RJC,PAD,FILENUM)
- . D SFDISP(FIND0,9,10,"Use Inactive Problems:",RJC,PAD,FILENUM)
- . D SFDISP(FIND0,10,11,"Within Category Rank:",RJC,PAD,FILENUM)
- . D SFDISP(FIND0,16,28,"Include Visit Data:",RJC,PAD,FILENUM)
- . D SFDISP(FIND0,12,13,"MH Scale:",RJC,PAD,FILENUM)
- . D SFDISP(FIND0,13,16,"Rx Type:",RJC,PAD,FILENUM)
- . D SFDISP(FIND0,15,27,"Use Start Date:",RJC,PAD,FILENUM)
- . D SFDISP(FIND0,17,29,"Immunization Search Criteria:",RJC,PAD,FILENUM)
- . I $D(^PXD(811.9,D0,20,FINDING,5,0))=1 D
- .. S (SCNT,SIEN)=0
- .. F S SIEN=$O(^PXD(811.9,D0,20,FINDING,5,SIEN)) Q:SIEN="" D
- ... S STAT0=$G(^PXD(811.9,D0,20,FINDING,5,SIEN,0))
- ... D STATUS(STAT0,"Status List:",RJC) S SCNT=SCNT+1
- . S FIND0=$G(^PXD(811.9,D0,20,FINDING,3))
- . D SFDISP(FIND0,1,14,"Condition:",RJC,PAD,FILENUM)
- . D SFDISP(FIND0,2,15,"Condition Case Sensitive:",RJC,PAD,FILENUM)
- . D SFDISP(FIND0,3,18,"Use Status/Cond in Search:",RJC,PAD,FILENUM)
- . I $G(^PXD(811.9,D0,20,FINDING,15))'="" D
- .. S X=$$RJ^XLFSTR("Computed Finding Parameter:",RJC,PAD)
- .. S X=X_" "_$G(^PXD(811.9,D0,20,FINDING,15))
- .. D ^DIWP
- . D WPOUT(FINDING,20,"Found Text:",RJC,PAD,PADS,1)
- . D WPOUT(FINDING,20,"Not Found Text:",RJC,PAD,PADS,2)
- . I RTERM["PXRMD(811.5" S IEN1=$P(RTERM,";") D RTERM
- . S X="---- End: "_FINDNAM
- . D FORMATS^PXRMTEXT(2,75,X,.NL,.OUTPUT)
- . F IND=1:1:NL D
- .. S X=OUTPUT(IND)
- .. I IND=NL S X=X_" ",LEN=75-$L(X) F INT=1:1:LEN S X=X_"-"
- .. D ^DIWP
- ;
- ;Function Findings
- I +$P($G(^PXD(811.9,D0,25,0)),U,4)>0 D
- . S X=" "
- . D ^DIWP
- . S X="Function Findings:"
- . D ^DIWP
- .;Build the list of findings for this reminder.
- . D BLDFLST^PXRMPTL(D0,.FL)
- . S FILENUM="811.925",FINDING=0
- . F S FINDING=$O(^PXD(811.9,D0,25,FINDING)) Q:+FINDING=0 D
- .. S FIND0=$G(^PXD(811.9,D0,25,FINDING,0))
- .. S FIND3=$G(^PXD(811.9,D0,25,FINDING,3))
- .. I FIND3="" Q
- .. S FIELD=$P(FIND0,U,1)
- .. S FINDNAM="FF("_FIELD_")"
- .. S X=" "
- .. D ^DIWP
- .. S X=$$RJ^XLFSTR("---- Begin:",12,PAD)
- .. S X=X_" "_FINDNAM
- .. S LEN=(75-$L(X))
- .. F INT=1:1:LEN S X=X_"-"
- .. D ^DIWP
- ..;
- .. D SFDISP(FIND3,1,3,"Function String:",RJC,PAD,FILENUM)
- .. S X=" Expanded Function String:" D ^DIWP
- .. D DISLOGF^PXRMPTL(D0,FINDING,.FL,.PARRAY)
- .. S INT=0
- .. F S INT=$O(PARRAY(INT)) Q:'INT D
- ... S X=$J("",6)_PARRAY(INT) D ^DIWP
- .. D WPOUT(FINDING,25,"Description:",RJC,PAD,PADS,20)
- ..;
- .. S FIELD=$P(FIND0,U,4)
- .. I $L(FIELD)>0 D
- ... S X=$$RJ^XLFSTR("Match Frequency/Age:",RJC,PAD)
- ... S X=X_" "_$$GENFREQ^PXRMPTD2(FIND0)
- ... D ^DIWP
- ..;
- .. D SFDISP(FIND0,5,10,"Rank Frequency:",RJC,PAD,FILENUM)
- .. D SFDISP(FIND0,6,11,"Use in Resolution Logic:",RJC,PAD,FILENUM)
- .. D SFDISP(FIND0,7,12,"Use in Patient Cohort Logic:",RJC,PAD,FILENUM)
- ..;
- .. D WPOUT(FINDING,25,"Found Text:",RJC,PAD,PADS,1)
- .. D WPOUT(FINDING,25,"Not Found Text:",RJC,PAD,PADS,2)
- .. S X=$$RJ^XLFSTR("---- End:",10,PADS)
- .. S X=X_" "_FINDNAM_" "
- .. S LEN=(75-$L(X))
- .. F INT=1:1:(LEN) S X=X_"-"
- .. D ^DIWP
- .. S X=" "
- .. D ^DIWP
- ;
- K ^TMP($J,"W")
- ;^UTILITY($J,"W") will be killed by ^DIWW in the print template.
- Q
- ;
- ;================================================
- RTERM ;Reminder Term
- N CNT,RJT,SCNT,SIEN,STAT0,TERM,TERM3,TERMNUM,TERMS
- S CNT=0,RJT=RJC+5,TERMNUM="811.52",TERMS=0
- F S TERMS=$O(^PXRMD(811.5,IEN1,20,TERMS)) Q:+TERMS=0 D
- .S TERM=$G(^PXRMD(811.5,IEN1,20,TERMS,0))
- .S TERM3=$G(^PXRMD(811.5,IEN1,20,TERMS,3))
- .D SFDISP(TERM,1,.01,"Mapped Finding Item:",RJT,PAD,TERMNUM,CNT)
- .D DATE^PXRMPTD2(TERM,8,9,"Beginning Date/Time:",RJT,PAD,TERMNUM)
- .D SFDISP(TERM,9,10,"Use Inactive Problems:",RJT,PAD,TERMNUM)
- .D DATE^PXRMPTD2(TERM,11,12,"Ending Date/Time:",RJT,PAD,TERMNUM)
- .D SFDISP(TERM,10,11,"Within Category Rank:",RJT,PAD,TERMNUM)
- .D SFDISP(TERM,12,13,"MH Scale:",RJT,PAD,TERMNUM)
- .D SFDISP(TERM,13,16,"RX Type:",RJT,PAD,TERMNUM)
- .D SFDISP(TERM,14,17,"Occurrence Count:",RJT,PAD,TERMNUM)
- .I $D(^PXRMD(811.5,IEN1,20,TERMS,5,0))=1 D
- ..S (SCNT,SIEN)=0
- ..F S SIEN=$O(^PXRMD(811.5,IEN1,20,TERMS,5,SIEN)) Q:SIEN="" D
- ...S STAT0=$G(^PXRMD(811.5,IEN1,20,TERMS,5,SIEN,0))
- ...D STATUS(STAT0,"Status List:",RJT) S SCNT=SCNT+1
- .D SFDISP(TERM3,1,14,"Condition:",RJT,PAD,TERMNUM,1)
- .D SFDISP(TERM3,2,15,"Condition Case Sensitive:",RJT,PAD,TERMNUM)
- .D SFDISP(TERM3,3,18,"Use Status/Cond in Search:",RJT,PAD,TERMNUM)
- .I $G(^PXRMD(811.5,IEN1,20,TERMS,15))'="" D
- ..S X=$$RJ^XLFSTR("Computed Finding Parameter:",RJT,PAD)
- ..S X=X_" "_$G(^PXRMD(811.5,IEN1,20,TERMS,15))
- ..D ^DIWP
- .S X=""
- .D ^DIWP
- .S CNT=CNT+1
- I CNT=0 D Q
- .S X=$$RJ^XLFSTR("RT Mapped Finding:",RJC,PAD)
- .S X=X_" No Reminder Finding Found"
- .D ^DIWP
- Q
- ;
- ;================================================
- SFDISP(FIND0,PIECE,FLDNUM,TITLE,RJC,PAD,FILENUM,FLG) ;Standard finding
- ;multiple field display.
- N FIELD,FMTSTR,HFCAT,HFIEN,IND,OUTPUT,NAME,NL,TYPE,X
- S FMTSTR=RJC_"R1^35L"
- S NAME=""
- S FIELD=$P(FIND0,U,PIECE)
- I (FILENUM="811.52"),(FLDNUM=".01"),(PIECE=1) D
- .I FLG=0 D
- ..S X="" D ^DIWP
- ..S RTERM=$P($P(RFIND,"=",2),")")_")"
- .S TYPE=$$FTYPE^PXRMPTD2(FIELD,1),NAME=$$ENTRYNAM^PXRMPTD2(FIELD)
- .S X="Mapped Findings:^"_TYPE_"."_NAME
- .D COLFMT^PXRMTEXT(FMTSTR,X,PAD,.NL,.OUTPUT)
- .F IND=1:1:NL S X=OUTPUT(IND) D ^DIWP
- .I TYPE="HF" D
- ..S HFIEN=$P(TERM,";")
- ..S HFCAT=$P($G(^AUTTHF(HFIEN,0)),U,3)
- ..S HFCAT=$P($G(^AUTTHF(HFCAT,0)),U)
- ..S X=$$RJ^XLFSTR("Health Factor Category:",RJC,PAD)
- ..S X=X_" "_HFCAT
- ..D ^DIWP
- I NAME'="" Q
- I $L(FIELD)>0 D
- .S X=$$RJ^XLFSTR(TITLE,RJC,PAD)
- .S X=X_" "_$$EXTERNAL^DILFD(FILENUM,FLDNUM,"",FIELD,"")
- .I FLDNUM=13 S X=X_" - "_$$SPECIAL(FIND0,FIELD)
- .D ^DIWP
- Q
- ;
- ;================================================
- SPECIAL(FIND0,FIELD) ;Special output for certain fields.
- N FINDING,GLOBAL,IEN
- S FINDING=$P(FIND0,U,1)
- S IEN=$P(FINDING,";",1)
- S GLOBAL=$P(FINDING,";",2)
- I GLOBAL="YTT(601.71," Q $$SCNAME^PXRMMH(IEN,FIELD)
- Q ""
- ;
- ;================================================
- STATUS(STAT0,TITLE,SPACE) ;
- I $L(STAT0)>0 D
- .I SCNT=0 S X=$$RJ^XLFSTR(TITLE,SPACE,PAD)
- .I SCNT>0 S X=$$RJ^XLFSTR("",SPACE,PAD)
- .S X=X_" "_STAT0
- .D ^DIWP
- Q
- ;
- ;================================================
- WPFORMAT(FINDING,NODE,RJC,INDEX) ;Format found/not word processing text.
- I '$D(^PXD(811.9,D0,NODE,FINDING,INDEX,1,0)) Q
- ;Save the title using the current format for DIWP.
- N DIWF,DIWL,DIWR,IND,NLINES,SC,X
- K ^UTILITY($J,"W")
- S DIWF="|",DIWL=RJC+2,DIWR=78
- S IND=0
- F S IND=$O(^PXD(811.9,D0,NODE,FINDING,INDEX,IND)) Q:+IND=0 D
- .S X=$G(^PXD(811.9,D0,NODE,FINDING,INDEX,IND,0))
- .D ^DIWP
- ;Find where this stuff went.
- S SC=$O(^UTILITY($J,"W",""))
- ;Save into ^TMP.
- S NLINES=^UTILITY($J,"W",SC)
- S ^TMP($J,"W",FINDING,NODE,INDEX)=NLINES
- F IND=1:1:NLINES D
- .S ^TMP($J,"W",FINDING,NODE,INDEX,IND)=^UTILITY($J,"W",SC,IND,0)
- K ^UTILITY($J,"W")
- Q
- ;
- ;================================================
- WPOUT(FINDING,NODE,TITLE,RJC,PAD,PADS,INDEX) ;Output found/not found,
- ;word processing text.
- I $D(^TMP($J,"W",FINDING,NODE,INDEX)) D
- .N IND,X
- .S X=$$RJ^XLFSTR(TITLE,RJC,PAD)_" "_^TMP($J,"W",FINDING,NODE,INDEX,1)
- .D ^DIWP
- .F IND=2:1:^TMP($J,"W",FINDING,NODE,INDEX) D
- ..S X=PADS_^TMP($J,"W",FINDING,NODE,INDEX,IND)
- ..D ^DIWP
- Q
- ;
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPXRMPTDF 9994 printed Mar 13, 2025@20:53:21 Page 2
- PXRMPTDF ;SLC/PKR/PJH - Reminder Inquiry print template routines. ;08/25/2020
- +1 ;;2.0;CLINICAL REMINDERS;**4,6,12,46,65**;Feb 04, 2005;Build 438
- +2 ;
- +3 ;================================================
- PFIND ;Print the reminder definition finding multiple.
- +1 NEW DIWF,FIELD,FILENUM,FINDING,FIND0,FIND3,FINDNAM,FL,HFCAT,HFIEN
- +2 NEW IEN1,IND,INT,LEN,NL,OUTPUT,PAD,PADS,PARRAY
- +3 NEW RJC,RFIND,RTERM,SCNT,SIEN,STAT0,TEMP,X
- +4 ;If called by a FileMan print build the variable pointer list.
- +5 IF '$DATA(PXRMFVPL)
- NEW PXRMFVPL
- DO BLDRLIST^PXRMVPTR(811.902,.01,.PXRMFVPL)
- +6 ;No printing is done by PFIND it accumulates all output using ^DIWP.
- +7 ;The print template outputs the text with ^DIWW.
- +8 ;Because of the way DIWP works we need to format all the found and
- +9 ;not found text first and store it in ^TMP.
- +10 KILL ^TMP($JOB,"W")
- +11 SET FILENUM="811.902"
- +12 SET RJC=30
- SET PAD=" "
- SET PADS=""
- +13 FOR IND=1:1:(RJC+2)
- SET PADS=PADS_PAD
- +14 SET FINDING=0
- +15 FOR
- SET FINDING=$ORDER(^PXD(811.9,D0,20,FINDING))
- if +FINDING=0
- QUIT
- Begin DoDot:1
- +16 DO WPFORMAT(FINDING,20,RJC,1)
- +17 DO WPFORMAT(FINDING,20,RJC,2)
- End DoDot:1
- +18 KILL ^UTILITY($JOB,"W")
- +19 SET FINDING=0
- +20 FOR
- SET FINDING=$ORDER(^PXD(811.9,D0,25,FINDING))
- if +FINDING=0
- QUIT
- Begin DoDot:1
- +21 DO WPFORMAT(FINDING,25,RJC,1)
- +22 DO WPFORMAT(FINDING,25,RJC,2)
- +23 DO WPFORMAT(FINDING,25,RJC,20)
- End DoDot:1
- +24 SET DIWF="C80"
- SET DIWL=2
- +25 KILL ^UTILITY($JOB,"W")
- +26 SET FINDING=0
- +27 FOR
- SET FINDING=$ORDER(^PXD(811.9,D0,20,FINDING))
- if +FINDING=0
- QUIT
- Begin DoDot:1
- +28 SET FIND0=^PXD(811.9,D0,20,FINDING,0)
- +29 SET FIELD=$PIECE(FIND0,U,1)
- +30 SET RTERM=FIELD
- +31 SET X=" "
- +32 DO ^DIWP
- +33 SET FINDNAM=$$ENTRYNAM^PXRMPTD2(FIELD)
- +34 IF FINDNAM=""
- SET FINDNAM="?"
- +35 SET RFIND=$$GENIEN^PXRMPTD2(FINDING)
- +36 SET X="---- Begin: "_FINDNAM_RFIND
- +37 DO FORMATS^PXRMTEXT(2,75,X,.NL,.OUTPUT)
- +38 FOR IND=1:1:NL
- Begin DoDot:2
- +39 SET X=OUTPUT(IND)
- +40 IF IND=NL
- SET X=X_" "
- SET LEN=75-$LENGTH(X)
- FOR INT=1:1:LEN
- SET X=X_"-"
- +41 DO ^DIWP
- End DoDot:2
- +42 ;
- +43 SET X=$$RJ^XLFSTR("Finding Type:",RJC,PAD)
- +44 SET X=X_" "_$$FTYPE^PXRMPTD2(FIELD,0)
- +45 DO ^DIWP
- +46 IF RFIND["HF"
- Begin DoDot:2
- +47 SET HFIEN=$PIECE($PIECE($PIECE(RFIND,"HF",2),"(",2),")")
- +48 SET HFCAT=$PIECE($GET(^AUTTHF(HFIEN,0)),U,3)
- +49 SET HFCAT=$SELECT(HFCAT="":"UNDEFINED",1:$PIECE($GET(^AUTTHF(HFCAT,0)),U,1))
- +50 SET X=$$RJ^XLFSTR("Health Factor Category:",RJC,PAD)
- +51 SET X=X_" "_HFCAT
- +52 DO ^DIWP
- End DoDot:2
- +53 ;
- +54 SET FIELD=$PIECE(FIND0,U,4)
- +55 IF $LENGTH(FIELD)>0
- Begin DoDot:2
- +56 SET X=$$RJ^XLFSTR("Match Frequency/Age:",RJC,PAD)
- +57 SET X=X_" "_$$GENFREQ^PXRMPTD2(FIND0)
- +58 DO ^DIWP
- End DoDot:2
- +59 ;
- +60 DO SFDISP(FIND0,5,6,"Rank Frequency:",RJC,PAD,FILENUM)
- +61 DO SFDISP(FIND0,6,7,"Use in Resolution Logic:",RJC,PAD,FILENUM)
- +62 DO SFDISP(FIND0,7,8,"Use in Patient Cohort Logic:",RJC,PAD,FILENUM)
- +63 DO DATE^PXRMPTD2(FIND0,8,9,"Beginning Date/Time:",RJC,PAD,FILENUM)
- +64 DO DATE^PXRMPTD2(FIND0,11,12,"Ending Date/Time:",RJC,PAD,FILENUM)
- +65 DO SFDISP(FIND0,14,17,"Occurrence Count:",RJC,PAD,FILENUM)
- +66 DO SFDISP(FIND0,9,10,"Use Inactive Problems:",RJC,PAD,FILENUM)
- +67 DO SFDISP(FIND0,10,11,"Within Category Rank:",RJC,PAD,FILENUM)
- +68 DO SFDISP(FIND0,16,28,"Include Visit Data:",RJC,PAD,FILENUM)
- +69 DO SFDISP(FIND0,12,13,"MH Scale:",RJC,PAD,FILENUM)
- +70 DO SFDISP(FIND0,13,16,"Rx Type:",RJC,PAD,FILENUM)
- +71 DO SFDISP(FIND0,15,27,"Use Start Date:",RJC,PAD,FILENUM)
- +72 DO SFDISP(FIND0,17,29,"Immunization Search Criteria:",RJC,PAD,FILENUM)
- +73 IF $DATA(^PXD(811.9,D0,20,FINDING,5,0))=1
- Begin DoDot:2
- +74 SET (SCNT,SIEN)=0
- +75 FOR
- SET SIEN=$ORDER(^PXD(811.9,D0,20,FINDING,5,SIEN))
- if SIEN=""
- QUIT
- Begin DoDot:3
- +76 SET STAT0=$GET(^PXD(811.9,D0,20,FINDING,5,SIEN,0))
- +77 DO STATUS(STAT0,"Status List:",RJC)
- SET SCNT=SCNT+1
- End DoDot:3
- End DoDot:2
- +78 SET FIND0=$GET(^PXD(811.9,D0,20,FINDING,3))
- +79 DO SFDISP(FIND0,1,14,"Condition:",RJC,PAD,FILENUM)
- +80 DO SFDISP(FIND0,2,15,"Condition Case Sensitive:",RJC,PAD,FILENUM)
- +81 DO SFDISP(FIND0,3,18,"Use Status/Cond in Search:",RJC,PAD,FILENUM)
- +82 IF $GET(^PXD(811.9,D0,20,FINDING,15))'=""
- Begin DoDot:2
- +83 SET X=$$RJ^XLFSTR("Computed Finding Parameter:",RJC,PAD)
- +84 SET X=X_" "_$GET(^PXD(811.9,D0,20,FINDING,15))
- +85 DO ^DIWP
- End DoDot:2
- +86 DO WPOUT(FINDING,20,"Found Text:",RJC,PAD,PADS,1)
- +87 DO WPOUT(FINDING,20,"Not Found Text:",RJC,PAD,PADS,2)
- +88 IF RTERM["PXRMD(811.5"
- SET IEN1=$PIECE(RTERM,";")
- DO RTERM
- +89 SET X="---- End: "_FINDNAM
- +90 DO FORMATS^PXRMTEXT(2,75,X,.NL,.OUTPUT)
- +91 FOR IND=1:1:NL
- Begin DoDot:2
- +92 SET X=OUTPUT(IND)
- +93 IF IND=NL
- SET X=X_" "
- SET LEN=75-$LENGTH(X)
- FOR INT=1:1:LEN
- SET X=X_"-"
- +94 DO ^DIWP
- End DoDot:2
- End DoDot:1
- +95 ;
- +96 ;Function Findings
- +97 IF +$PIECE($GET(^PXD(811.9,D0,25,0)),U,4)>0
- Begin DoDot:1
- +98 SET X=" "
- +99 DO ^DIWP
- +100 SET X="Function Findings:"
- +101 DO ^DIWP
- +102 ;Build the list of findings for this reminder.
- +103 DO BLDFLST^PXRMPTL(D0,.FL)
- +104 SET FILENUM="811.925"
- SET FINDING=0
- +105 FOR
- SET FINDING=$ORDER(^PXD(811.9,D0,25,FINDING))
- if +FINDING=0
- QUIT
- Begin DoDot:2
- +106 SET FIND0=$GET(^PXD(811.9,D0,25,FINDING,0))
- +107 SET FIND3=$GET(^PXD(811.9,D0,25,FINDING,3))
- +108 IF FIND3=""
- QUIT
- +109 SET FIELD=$PIECE(FIND0,U,1)
- +110 SET FINDNAM="FF("_FIELD_")"
- +111 SET X=" "
- +112 DO ^DIWP
- +113 SET X=$$RJ^XLFSTR("---- Begin:",12,PAD)
- +114 SET X=X_" "_FINDNAM
- +115 SET LEN=(75-$LENGTH(X))
- +116 FOR INT=1:1:LEN
- SET X=X_"-"
- +117 DO ^DIWP
- +118 ;
- +119 DO SFDISP(FIND3,1,3,"Function String:",RJC,PAD,FILENUM)
- +120 SET X=" Expanded Function String:"
- DO ^DIWP
- +121 DO DISLOGF^PXRMPTL(D0,FINDING,.FL,.PARRAY)
- +122 SET INT=0
- +123 FOR
- SET INT=$ORDER(PARRAY(INT))
- if 'INT
- QUIT
- Begin DoDot:3
- +124 SET X=$JUSTIFY("",6)_PARRAY(INT)
- DO ^DIWP
- End DoDot:3
- +125 DO WPOUT(FINDING,25,"Description:",RJC,PAD,PADS,20)
- +126 ;
- +127 SET FIELD=$PIECE(FIND0,U,4)
- +128 IF $LENGTH(FIELD)>0
- Begin DoDot:3
- +129 SET X=$$RJ^XLFSTR("Match Frequency/Age:",RJC,PAD)
- +130 SET X=X_" "_$$GENFREQ^PXRMPTD2(FIND0)
- +131 DO ^DIWP
- End DoDot:3
- +132 ;
- +133 DO SFDISP(FIND0,5,10,"Rank Frequency:",RJC,PAD,FILENUM)
- +134 DO SFDISP(FIND0,6,11,"Use in Resolution Logic:",RJC,PAD,FILENUM)
- +135 DO SFDISP(FIND0,7,12,"Use in Patient Cohort Logic:",RJC,PAD,FILENUM)
- +136 ;
- +137 DO WPOUT(FINDING,25,"Found Text:",RJC,PAD,PADS,1)
- +138 DO WPOUT(FINDING,25,"Not Found Text:",RJC,PAD,PADS,2)
- +139 SET X=$$RJ^XLFSTR("---- End:",10,PADS)
- +140 SET X=X_" "_FINDNAM_" "
- +141 SET LEN=(75-$LENGTH(X))
- +142 FOR INT=1:1:(LEN)
- SET X=X_"-"
- +143 DO ^DIWP
- +144 SET X=" "
- +145 DO ^DIWP
- End DoDot:2
- End DoDot:1
- +146 ;
- +147 KILL ^TMP($JOB,"W")
- +148 ;^UTILITY($J,"W") will be killed by ^DIWW in the print template.
- +149 QUIT
- +150 ;
- +151 ;================================================
- RTERM ;Reminder Term
- +1 NEW CNT,RJT,SCNT,SIEN,STAT0,TERM,TERM3,TERMNUM,TERMS
- +2 SET CNT=0
- SET RJT=RJC+5
- SET TERMNUM="811.52"
- SET TERMS=0
- +3 FOR
- SET TERMS=$ORDER(^PXRMD(811.5,IEN1,20,TERMS))
- if +TERMS=0
- QUIT
- Begin DoDot:1
- +4 SET TERM=$GET(^PXRMD(811.5,IEN1,20,TERMS,0))
- +5 SET TERM3=$GET(^PXRMD(811.5,IEN1,20,TERMS,3))
- +6 DO SFDISP(TERM,1,.01,"Mapped Finding Item:",RJT,PAD,TERMNUM,CNT)
- +7 DO DATE^PXRMPTD2(TERM,8,9,"Beginning Date/Time:",RJT,PAD,TERMNUM)
- +8 DO SFDISP(TERM,9,10,"Use Inactive Problems:",RJT,PAD,TERMNUM)
- +9 DO DATE^PXRMPTD2(TERM,11,12,"Ending Date/Time:",RJT,PAD,TERMNUM)
- +10 DO SFDISP(TERM,10,11,"Within Category Rank:",RJT,PAD,TERMNUM)
- +11 DO SFDISP(TERM,12,13,"MH Scale:",RJT,PAD,TERMNUM)
- +12 DO SFDISP(TERM,13,16,"RX Type:",RJT,PAD,TERMNUM)
- +13 DO SFDISP(TERM,14,17,"Occurrence Count:",RJT,PAD,TERMNUM)
- +14 IF $DATA(^PXRMD(811.5,IEN1,20,TERMS,5,0))=1
- Begin DoDot:2
- +15 SET (SCNT,SIEN)=0
- +16 FOR
- SET SIEN=$ORDER(^PXRMD(811.5,IEN1,20,TERMS,5,SIEN))
- if SIEN=""
- QUIT
- Begin DoDot:3
- +17 SET STAT0=$GET(^PXRMD(811.5,IEN1,20,TERMS,5,SIEN,0))
- +18 DO STATUS(STAT0,"Status List:",RJT)
- SET SCNT=SCNT+1
- End DoDot:3
- End DoDot:2
- +19 DO SFDISP(TERM3,1,14,"Condition:",RJT,PAD,TERMNUM,1)
- +20 DO SFDISP(TERM3,2,15,"Condition Case Sensitive:",RJT,PAD,TERMNUM)
- +21 DO SFDISP(TERM3,3,18,"Use Status/Cond in Search:",RJT,PAD,TERMNUM)
- +22 IF $GET(^PXRMD(811.5,IEN1,20,TERMS,15))'=""
- Begin DoDot:2
- +23 SET X=$$RJ^XLFSTR("Computed Finding Parameter:",RJT,PAD)
- +24 SET X=X_" "_$GET(^PXRMD(811.5,IEN1,20,TERMS,15))
- +25 DO ^DIWP
- End DoDot:2
- +26 SET X=""
- +27 DO ^DIWP
- +28 SET CNT=CNT+1
- End DoDot:1
- +29 IF CNT=0
- Begin DoDot:1
- +30 SET X=$$RJ^XLFSTR("RT Mapped Finding:",RJC,PAD)
- +31 SET X=X_" No Reminder Finding Found"
- +32 DO ^DIWP
- End DoDot:1
- QUIT
- +33 QUIT
- +34 ;
- +35 ;================================================
- SFDISP(FIND0,PIECE,FLDNUM,TITLE,RJC,PAD,FILENUM,FLG) ;Standard finding
- +1 ;multiple field display.
- +2 NEW FIELD,FMTSTR,HFCAT,HFIEN,IND,OUTPUT,NAME,NL,TYPE,X
- +3 SET FMTSTR=RJC_"R1^35L"
- +4 SET NAME=""
- +5 SET FIELD=$PIECE(FIND0,U,PIECE)
- +6 IF (FILENUM="811.52")
- IF (FLDNUM=".01")
- IF (PIECE=1)
- Begin DoDot:1
- +7 IF FLG=0
- Begin DoDot:2
- +8 SET X=""
- DO ^DIWP
- +9 SET RTERM=$PIECE($PIECE(RFIND,"=",2),")")_")"
- End DoDot:2
- +10 SET TYPE=$$FTYPE^PXRMPTD2(FIELD,1)
- SET NAME=$$ENTRYNAM^PXRMPTD2(FIELD)
- +11 SET X="Mapped Findings:^"_TYPE_"."_NAME
- +12 DO COLFMT^PXRMTEXT(FMTSTR,X,PAD,.NL,.OUTPUT)
- +13 FOR IND=1:1:NL
- SET X=OUTPUT(IND)
- DO ^DIWP
- +14 IF TYPE="HF"
- Begin DoDot:2
- +15 SET HFIEN=$PIECE(TERM,";")
- +16 SET HFCAT=$PIECE($GET(^AUTTHF(HFIEN,0)),U,3)
- +17 SET HFCAT=$PIECE($GET(^AUTTHF(HFCAT,0)),U)
- +18 SET X=$$RJ^XLFSTR("Health Factor Category:",RJC,PAD)
- +19 SET X=X_" "_HFCAT
- +20 DO ^DIWP
- End DoDot:2
- End DoDot:1
- +21 IF NAME'=""
- QUIT
- +22 IF $LENGTH(FIELD)>0
- Begin DoDot:1
- +23 SET X=$$RJ^XLFSTR(TITLE,RJC,PAD)
- +24 SET X=X_" "_$$EXTERNAL^DILFD(FILENUM,FLDNUM,"",FIELD,"")
- +25 IF FLDNUM=13
- SET X=X_" - "_$$SPECIAL(FIND0,FIELD)
- +26 DO ^DIWP
- End DoDot:1
- +27 QUIT
- +28 ;
- +29 ;================================================
- SPECIAL(FIND0,FIELD) ;Special output for certain fields.
- +1 NEW FINDING,GLOBAL,IEN
- +2 SET FINDING=$PIECE(FIND0,U,1)
- +3 SET IEN=$PIECE(FINDING,";",1)
- +4 SET GLOBAL=$PIECE(FINDING,";",2)
- +5 IF GLOBAL="YTT(601.71,"
- QUIT $$SCNAME^PXRMMH(IEN,FIELD)
- +6 QUIT ""
- +7 ;
- +8 ;================================================
- STATUS(STAT0,TITLE,SPACE) ;
- +1 IF $LENGTH(STAT0)>0
- Begin DoDot:1
- +2 IF SCNT=0
- SET X=$$RJ^XLFSTR(TITLE,SPACE,PAD)
- +3 IF SCNT>0
- SET X=$$RJ^XLFSTR("",SPACE,PAD)
- +4 SET X=X_" "_STAT0
- +5 DO ^DIWP
- End DoDot:1
- +6 QUIT
- +7 ;
- +8 ;================================================
- WPFORMAT(FINDING,NODE,RJC,INDEX) ;Format found/not word processing text.
- +1 IF '$DATA(^PXD(811.9,D0,NODE,FINDING,INDEX,1,0))
- QUIT
- +2 ;Save the title using the current format for DIWP.
- +3 NEW DIWF,DIWL,DIWR,IND,NLINES,SC,X
- +4 KILL ^UTILITY($JOB,"W")
- +5 SET DIWF="|"
- SET DIWL=RJC+2
- SET DIWR=78
- +6 SET IND=0
- +7 FOR
- SET IND=$ORDER(^PXD(811.9,D0,NODE,FINDING,INDEX,IND))
- if +IND=0
- QUIT
- Begin DoDot:1
- +8 SET X=$GET(^PXD(811.9,D0,NODE,FINDING,INDEX,IND,0))
- +9 DO ^DIWP
- End DoDot:1
- +10 ;Find where this stuff went.
- +11 SET SC=$ORDER(^UTILITY($JOB,"W",""))
- +12 ;Save into ^TMP.
- +13 SET NLINES=^UTILITY($JOB,"W",SC)
- +14 SET ^TMP($JOB,"W",FINDING,NODE,INDEX)=NLINES
- +15 FOR IND=1:1:NLINES
- Begin DoDot:1
- +16 SET ^TMP($JOB,"W",FINDING,NODE,INDEX,IND)=^UTILITY($JOB,"W",SC,IND,0)
- End DoDot:1
- +17 KILL ^UTILITY($JOB,"W")
- +18 QUIT
- +19 ;
- +20 ;================================================
- WPOUT(FINDING,NODE,TITLE,RJC,PAD,PADS,INDEX) ;Output found/not found,
- +1 ;word processing text.
- +2 IF $DATA(^TMP($JOB,"W",FINDING,NODE,INDEX))
- Begin DoDot:1
- +3 NEW IND,X
- +4 SET X=$$RJ^XLFSTR(TITLE,RJC,PAD)_" "_^TMP($JOB,"W",FINDING,NODE,INDEX,1)
- +5 DO ^DIWP
- +6 FOR IND=2:1:^TMP($JOB,"W",FINDING,NODE,INDEX)
- Begin DoDot:2
- +7 SET X=PADS_^TMP($JOB,"W",FINDING,NODE,INDEX,IND)
- +8 DO ^DIWP
- End DoDot:2
- End DoDot:1
- +9 QUIT
- +10 ;