- PXRMSINQ ;SLC/PKR - Reminder simple inquiry routines ;03/14/2013
- ;;2.0;CLINICAL REMINDERS;**26**;Feb 04, 2005;Build 404
- ;===================================
- BROWSE(FILENUM,FLDLIST,IEN) ;Display the details of an entry using the
- ;FileMan Browser.
- I '$$FIND1^DIC(FILENUM,"","AQU",IEN) Q
- N BOP,NL,OUTPUT,TITLE,X
- D GETTEXT(FILENUM,FLDLIST,IEN,.NL,.OUTPUT)
- S BOP=$$BORP^PXRMUTIL("B")
- I BOP="B" D
- . S X="IORESET"
- . D ENDR^%ZISS
- . S TITLE=$$GET1^DID(FILENUM,"","","NAME")_" INQUIRY for IEN="_IEN
- . D BROWSE^DDBR("OUTPUT","NR",TITLE)
- . W IORESET
- . D KILL^%ZISS
- I BOP="P" D GPRINT^PXRMUTIL("OUTPUT")
- Q
- ;
- ;===================================
- CLBROWSE(FILENUM,FLDLIST,IEN) ;Display the details of an entry's Change
- ;Log using the FileMan Browser.
- I '$$FIND1^DIC(FILENUM,"","AQU",IEN) Q
- N BOP,NL,OUTPUT,TITLE,X
- D GETEH(FILENUM,FLDLIST,IEN,.NL,.OUTPUT)
- S BOP=$$BORP^PXRMUTIL("B")
- I BOP="B" D
- . S X="IORESET"
- . D ENDR^%ZISS
- . S TITLE=$$GET1^DID(FILENUM,"","","NAME")_" Change Log for IEN="_IEN
- . D BROWSE^DDBR("OUTPUT","NR",TITLE)
- . W IORESET
- . D KILL^%ZISS
- I BOP="P" D GPRINT^PXRMUTIL("OUTPUT")
- Q
- ;
- ;===================================
- GETEH(FILENUM,FLDLST,IEN,NL,OUTPUT) ;Get the edit history.
- N IND,NLINES,TEXT
- D GETTEXT(FILENUM,FLDLST,IEN,.NLINES,.TEXT)
- I '$D(TEXT) S OUTPUT(1)="No edits have been made." Q
- S NL=0
- F IND=2:1:NLINES D
- . I TEXT(IND)["Edit Date:" D Q
- .. I NL>0 S NL=NL+1,OUTPUT(NL)=" "
- .. S NL=NL+1,OUTPUT(NL)=TEXT(IND+1)_" on"_$P(TEXT(IND),"Edit Date:",2)
- .. S IND=IND+1
- . I TEXT(IND)["Edit Comments" Q
- . S NL=NL+1,OUTPUT(NL)=TEXT(IND)
- Q
- ;
- ;===================================
- GETTEXT(FILENUM,FLDLIST,IEN,NL,OUTPUT) ;Get the requested contents of an entry.
- ;FILENUM - file number
- ;IEN - internal entry number
- ;OUTPUT - array where text is returned.
- ;FLDLIST - a semicolon separated list of fields to include in the
- ;output. A piece can be a single field number, a range of fields
- ;in the form FM:FN, or a multiple in the form FN*. Each piece will
- ;be preceeded by a blank line. Example: ".01;10;15*;100:102"
- ;This will get the .01, a blank line and field 10, a blank line
- ;followed by the contents of multiple 15, a blank line followed by
- ;the contents of fields 100 through 102.
- ;text in OUTPUT.
- N DIQOUT,IENS,IND,INDENT,FIELD,FLABEL,FLDIND,FLDNUM,FNUM,JND
- N MSG,MULT,NIN,NOUT,TEMP,TEXTIN,TEXTOUT,TITLE,WPF
- S NL=0
- F FLDIND=1:1:$L(FLDLIST,";") D
- . S FLDNUM=$P(FLDLIST,";",FLDIND)
- . K DIQOUT
- . D GETS^DIQ(FILENUM,IEN,FLDNUM,"N","DIQOUT","MSG")
- . I $D(DIQOUT)=0 Q
- .;Preceed each group of fields with a blank line.
- . I NL>0 S NL=NL+1,OUTPUT(NL)=" "
- . S FNUM="",MULT=0
- . F S FNUM=$O(DIQOUT(FNUM)) Q:FNUM="" D
- .. I FNUM'=FILENUM D
- ... S MULT=1
- ...;DBIA #4768
- ... S TEXTIN=$$TITLE^XLFSTR($O(^DD(FNUM,0,"NM","")))
- ... D FORMATS^PXRMTEXT(1,80,TEXTIN,.NOUT,.TEXTOUT)
- ... F IND=1:1:NOUT S NL=NL+1,OUTPUT(NL)=TEXTOUT(IND)
- .. S IENS=""
- .. F S IENS=$O(DIQOUT(FNUM,IENS)) Q:IENS="" D
- ... S FIELD=""
- ... F S FIELD=$O(DIQOUT(FNUM,IENS,FIELD)) Q:FIELD="" D
- .... S FLABEL=$$GET1^DID(FNUM,FIELD,"","LABEL")
- .... S FLABEL=$$TITLE^XLFSTR(FLABEL)
- ....;Check for a word-processing field.
- .... S TEMP=DIQOUT(FNUM,IENS,FIELD)
- .... S WPF=$S(TEMP["DIQOUT":1,1:0)
- .... I WPF D Q
- ..... S NL=NL+1,OUTPUT(NL)=FLABEL_":"
- ..... S JND=0
- .....;Do not format word-processing fields so the original is displayed.
- ..... F S JND=$O(DIQOUT(FNUM,IENS,FIELD,JND)) Q:JND="" S NL=NL+1,OUTPUT(NL)=DIQOUT(FNUM,IENS,FIELD,JND)
- .... S TEXTIN=$$TITLE^XLFSTR(FLABEL)_": "_DIQOUT(FNUM,IENS,FIELD)
- .... S INDENT=$S(MULT:2,1:1)
- .... D FORMATS^PXRMTEXT(INDENT,80,TEXTIN,.NOUT,.TEXTOUT)
- .... F IND=1:1:NOUT S NL=NL+1,OUTPUT(NL)=TEXTOUT(IND)
- Q
- ;
- ;===================================
- LMBROWSE(FILENUM,FLDLIST,IEN) ;Display the details of an entry using the
- ;FileMan Browser. For use by a ListManager application.
- I '$$FIND1^DIC(FILENUM,"","AQU",IEN) Q
- N BOP,NL,OUTPUT,TITLE
- D GETTEXT(FILENUM,FLDLIST,IEN,.NL,.OUTPUT)
- D FULL^VALM1
- S BOP=$$BORP^PXRMUTIL("B")
- I BOP="B" D
- . S TITLE=$$GET1^DID(FILENUM,"","","NAME")_" INQUIRY for IEN="_IEN
- . D BROWSE^DDBR("OUTPUT","NR",TITLE)
- I BOP="P" D
- . D GPRINT^PXRMUTIL("OUTPUT")
- . S VALMBCK="R"
- Q
- ;
- ;===================================
- LMCLBROW(FILENUM,FLDLIST,IEN) ;Display the details of an entry's edit history
- ;using the FileMan Browser. For use by a ListManager application.
- I '$$FIND1^DIC(FILENUM,"","AQU",IEN) Q
- N BOP,NL,OUTPUT,TITLE
- D GETEH(FILENUM,FLDLIST,IEN,.NL,.OUTPUT)
- D FULL^VALM1
- S BOP=$$BORP^PXRMUTIL("B")
- I BOP="B" D
- . S TITLE=$$GET1^DID(FILENUM,"","","NAME")_" Change Log for IEN="_IEN
- . D BROWSE^DDBR("OUTPUT","NR",TITLE)
- I BOP="P" D
- . D GPRINT^PXRMUTIL("OUTPUT")
- . S VALMBCK="R"
- Q
- ;
- ;===================================
- TEST(FILENUM,IEN) ;Test driver.
- N FLDLIST
- I FILENUM=801 S FLDLIST=".01;10;15*;20*;30*;100:102"
- I FILENUM=803 S FLDLIST=".01:15;30*;40*;45*;50*;100:102"
- I FILENUM=803.2 S FLDLIST=".01:5;20:24;100:102"
- I FILENUM=810.9 S FLDLIST=".01;1;40.7*;44*;100:102"
- D BROWSE(FILENUM,FLDLIST,IEN)
- Q
- ;
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPXRMSINQ 5201 printed Feb 18, 2025@23:15:32 Page 2
- PXRMSINQ ;SLC/PKR - Reminder simple inquiry routines ;03/14/2013
- +1 ;;2.0;CLINICAL REMINDERS;**26**;Feb 04, 2005;Build 404
- +2 ;===================================
- BROWSE(FILENUM,FLDLIST,IEN) ;Display the details of an entry using the
- +1 ;FileMan Browser.
- +2 IF '$$FIND1^DIC(FILENUM,"","AQU",IEN)
- QUIT
- +3 NEW BOP,NL,OUTPUT,TITLE,X
- +4 DO GETTEXT(FILENUM,FLDLIST,IEN,.NL,.OUTPUT)
- +5 SET BOP=$$BORP^PXRMUTIL("B")
- +6 IF BOP="B"
- Begin DoDot:1
- +7 SET X="IORESET"
- +8 DO ENDR^%ZISS
- +9 SET TITLE=$$GET1^DID(FILENUM,"","","NAME")_" INQUIRY for IEN="_IEN
- +10 DO BROWSE^DDBR("OUTPUT","NR",TITLE)
- +11 WRITE IORESET
- +12 DO KILL^%ZISS
- End DoDot:1
- +13 IF BOP="P"
- DO GPRINT^PXRMUTIL("OUTPUT")
- +14 QUIT
- +15 ;
- +16 ;===================================
- CLBROWSE(FILENUM,FLDLIST,IEN) ;Display the details of an entry's Change
- +1 ;Log using the FileMan Browser.
- +2 IF '$$FIND1^DIC(FILENUM,"","AQU",IEN)
- QUIT
- +3 NEW BOP,NL,OUTPUT,TITLE,X
- +4 DO GETEH(FILENUM,FLDLIST,IEN,.NL,.OUTPUT)
- +5 SET BOP=$$BORP^PXRMUTIL("B")
- +6 IF BOP="B"
- Begin DoDot:1
- +7 SET X="IORESET"
- +8 DO ENDR^%ZISS
- +9 SET TITLE=$$GET1^DID(FILENUM,"","","NAME")_" Change Log for IEN="_IEN
- +10 DO BROWSE^DDBR("OUTPUT","NR",TITLE)
- +11 WRITE IORESET
- +12 DO KILL^%ZISS
- End DoDot:1
- +13 IF BOP="P"
- DO GPRINT^PXRMUTIL("OUTPUT")
- +14 QUIT
- +15 ;
- +16 ;===================================
- GETEH(FILENUM,FLDLST,IEN,NL,OUTPUT) ;Get the edit history.
- +1 NEW IND,NLINES,TEXT
- +2 DO GETTEXT(FILENUM,FLDLST,IEN,.NLINES,.TEXT)
- +3 IF '$DATA(TEXT)
- SET OUTPUT(1)="No edits have been made."
- QUIT
- +4 SET NL=0
- +5 FOR IND=2:1:NLINES
- Begin DoDot:1
- +6 IF TEXT(IND)["Edit Date:"
- Begin DoDot:2
- +7 IF NL>0
- SET NL=NL+1
- SET OUTPUT(NL)=" "
- +8 SET NL=NL+1
- SET OUTPUT(NL)=TEXT(IND+1)_" on"_$PIECE(TEXT(IND),"Edit Date:",2)
- +9 SET IND=IND+1
- End DoDot:2
- QUIT
- +10 IF TEXT(IND)["Edit Comments"
- QUIT
- +11 SET NL=NL+1
- SET OUTPUT(NL)=TEXT(IND)
- End DoDot:1
- +12 QUIT
- +13 ;
- +14 ;===================================
- GETTEXT(FILENUM,FLDLIST,IEN,NL,OUTPUT) ;Get the requested contents of an entry.
- +1 ;FILENUM - file number
- +2 ;IEN - internal entry number
- +3 ;OUTPUT - array where text is returned.
- +4 ;FLDLIST - a semicolon separated list of fields to include in the
- +5 ;output. A piece can be a single field number, a range of fields
- +6 ;in the form FM:FN, or a multiple in the form FN*. Each piece will
- +7 ;be preceeded by a blank line. Example: ".01;10;15*;100:102"
- +8 ;This will get the .01, a blank line and field 10, a blank line
- +9 ;followed by the contents of multiple 15, a blank line followed by
- +10 ;the contents of fields 100 through 102.
- +11 ;text in OUTPUT.
- +12 NEW DIQOUT,IENS,IND,INDENT,FIELD,FLABEL,FLDIND,FLDNUM,FNUM,JND
- +13 NEW MSG,MULT,NIN,NOUT,TEMP,TEXTIN,TEXTOUT,TITLE,WPF
- +14 SET NL=0
- +15 FOR FLDIND=1:1:$LENGTH(FLDLIST,";")
- Begin DoDot:1
- +16 SET FLDNUM=$PIECE(FLDLIST,";",FLDIND)
- +17 KILL DIQOUT
- +18 DO GETS^DIQ(FILENUM,IEN,FLDNUM,"N","DIQOUT","MSG")
- +19 IF $DATA(DIQOUT)=0
- QUIT
- +20 ;Preceed each group of fields with a blank line.
- +21 IF NL>0
- SET NL=NL+1
- SET OUTPUT(NL)=" "
- +22 SET FNUM=""
- SET MULT=0
- +23 FOR
- SET FNUM=$ORDER(DIQOUT(FNUM))
- if FNUM=""
- QUIT
- Begin DoDot:2
- +24 IF FNUM'=FILENUM
- Begin DoDot:3
- +25 SET MULT=1
- +26 ;DBIA #4768
- +27 SET TEXTIN=$$TITLE^XLFSTR($ORDER(^DD(FNUM,0,"NM","")))
- +28 DO FORMATS^PXRMTEXT(1,80,TEXTIN,.NOUT,.TEXTOUT)
- +29 FOR IND=1:1:NOUT
- SET NL=NL+1
- SET OUTPUT(NL)=TEXTOUT(IND)
- End DoDot:3
- +30 SET IENS=""
- +31 FOR
- SET IENS=$ORDER(DIQOUT(FNUM,IENS))
- if IENS=""
- QUIT
- Begin DoDot:3
- +32 SET FIELD=""
- +33 FOR
- SET FIELD=$ORDER(DIQOUT(FNUM,IENS,FIELD))
- if FIELD=""
- QUIT
- Begin DoDot:4
- +34 SET FLABEL=$$GET1^DID(FNUM,FIELD,"","LABEL")
- +35 SET FLABEL=$$TITLE^XLFSTR(FLABEL)
- +36 ;Check for a word-processing field.
- +37 SET TEMP=DIQOUT(FNUM,IENS,FIELD)
- +38 SET WPF=$SELECT(TEMP["DIQOUT":1,1:0)
- +39 IF WPF
- Begin DoDot:5
- +40 SET NL=NL+1
- SET OUTPUT(NL)=FLABEL_":"
- +41 SET JND=0
- +42 ;Do not format word-processing fields so the original is displayed.
- +43 FOR
- SET JND=$ORDER(DIQOUT(FNUM,IENS,FIELD,JND))
- if JND=""
- QUIT
- SET NL=NL+1
- SET OUTPUT(NL)=DIQOUT(FNUM,IENS,FIELD,JND)
- End DoDot:5
- QUIT
- +44 SET TEXTIN=$$TITLE^XLFSTR(FLABEL)_": "_DIQOUT(FNUM,IENS,FIELD)
- +45 SET INDENT=$SELECT(MULT:2,1:1)
- +46 DO FORMATS^PXRMTEXT(INDENT,80,TEXTIN,.NOUT,.TEXTOUT)
- +47 FOR IND=1:1:NOUT
- SET NL=NL+1
- SET OUTPUT(NL)=TEXTOUT(IND)
- End DoDot:4
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +48 QUIT
- +49 ;
- +50 ;===================================
- LMBROWSE(FILENUM,FLDLIST,IEN) ;Display the details of an entry using the
- +1 ;FileMan Browser. For use by a ListManager application.
- +2 IF '$$FIND1^DIC(FILENUM,"","AQU",IEN)
- QUIT
- +3 NEW BOP,NL,OUTPUT,TITLE
- +4 DO GETTEXT(FILENUM,FLDLIST,IEN,.NL,.OUTPUT)
- +5 DO FULL^VALM1
- +6 SET BOP=$$BORP^PXRMUTIL("B")
- +7 IF BOP="B"
- Begin DoDot:1
- +8 SET TITLE=$$GET1^DID(FILENUM,"","","NAME")_" INQUIRY for IEN="_IEN
- +9 DO BROWSE^DDBR("OUTPUT","NR",TITLE)
- End DoDot:1
- +10 IF BOP="P"
- Begin DoDot:1
- +11 DO GPRINT^PXRMUTIL("OUTPUT")
- +12 SET VALMBCK="R"
- End DoDot:1
- +13 QUIT
- +14 ;
- +15 ;===================================
- LMCLBROW(FILENUM,FLDLIST,IEN) ;Display the details of an entry's edit history
- +1 ;using the FileMan Browser. For use by a ListManager application.
- +2 IF '$$FIND1^DIC(FILENUM,"","AQU",IEN)
- QUIT
- +3 NEW BOP,NL,OUTPUT,TITLE
- +4 DO GETEH(FILENUM,FLDLIST,IEN,.NL,.OUTPUT)
- +5 DO FULL^VALM1
- +6 SET BOP=$$BORP^PXRMUTIL("B")
- +7 IF BOP="B"
- Begin DoDot:1
- +8 SET TITLE=$$GET1^DID(FILENUM,"","","NAME")_" Change Log for IEN="_IEN
- +9 DO BROWSE^DDBR("OUTPUT","NR",TITLE)
- End DoDot:1
- +10 IF BOP="P"
- Begin DoDot:1
- +11 DO GPRINT^PXRMUTIL("OUTPUT")
- +12 SET VALMBCK="R"
- End DoDot:1
- +13 QUIT
- +14 ;
- +15 ;===================================
- TEST(FILENUM,IEN) ;Test driver.
- +1 NEW FLDLIST
- +2 IF FILENUM=801
- SET FLDLIST=".01;10;15*;20*;30*;100:102"
- +3 IF FILENUM=803
- SET FLDLIST=".01:15;30*;40*;45*;50*;100:102"
- +4 IF FILENUM=803.2
- SET FLDLIST=".01:5;20:24;100:102"
- +5 IF FILENUM=810.9
- SET FLDLIST=".01;1;40.7*;44*;100:102"
- +6 DO BROWSE(FILENUM,FLDLIST,IEN)
- +7 QUIT
- +8 ;