- BMXRPC1 ; IHS/OIT/HMW - UTIL: REMOTE PROCEDURE CALLS ;
- ;;4.0;BMX;;JUN 28, 2010
- ;;* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER *
- ;; UTILITY: CODE FOR REMOTE PROCEDURE CALLS.
- ;; RETURNS PATIENT DATA, HEALTH SUMMARY, FACE SHEET.
- ;
- ;
- ;----------
- PDATA(BMXDATA,BMXDFN) ;EP
- ;---> Return Patient Data in 5 ^-delimited pieces:
- ;---> 1 - DOB in format: OCT 01,1994.
- ;---> 2 - Age in format: 35 Months.
- ;---> 3 - Text of Patient's sex.
- ;---> 4 - HRCN in the format XX-XX-XX.
- ;---> 5 - Text of ACTIVE/INACTIVE Status.
- ;---> Parameters:
- ; 1 - BMXDATA (ret) String of patient data||error.
- ; 2 - BMXDFN (req) DFN of patient.
- ;
- ;---> Delimiter to pass error with result to GUI.
- N BMX31,BMXERR S BMX31=$C(31)_$C(31)
- S BMXDATA="",BMXERR=""
- ;
- ;---> If DFN not supplied, set Error Code and quit.
- I '$G(BMXDFN) D Q
- .;D ERRCD^BMXUTL2(201,.BMXERR) S BMXDATA=BMX31_BMXERR
- ;
- ;---> DOB.
- S BMXDATA=$$TXDT1^BMXUTL5($$DOB^BMXUTL1(BMXDFN))
- ;
- ;---> Age.
- S BMXDATA=BMXDATA_U_$$AGEF^BMXUTL1(BMXDFN)
- ;
- ;---> Text of sex.
- S BMXDATA=BMXDATA_U_$$SEXW^BMXUTL1(BMXDFN)
- ;
- ;---> HRCN, format XX-XX-XX.
- S BMXDATA=BMXDATA_U_$$HRCN^BMXUTL1(BMXDFN)
- ;
- ;---> Active/Inactive Status.
- ;S BMXDATA=BMXDATA_U_$$ACTIVE^BMXUTL1(BMXDFN)
- ;
- S BMXDATA=BMXDATA_BMX31
- ;
- Q
- ;
- ;
- ;----------
- HS(BMXGBL,BMXDFN) ;EP
- ;---> Return patient's Health Summary in global array, ^BMXTEMP($J,"HS".
- ;---> Lines delimited by "^".
- ;---> Called by RPC: BMX IMMSERVE PT PROFILE
- ;---> Parameters:
- ; 1 - BMXGBL (ret) Name of result global containing patient's
- ; Health Summary, passed to Broker.
- ; 2 - BMXDFN (req) DFN of patient.
- ;
- ;---> Delimiter to pass error with result to GUI.
- N BMX30,BMX31,BMXERR,X
- S BMX30=$C(30),BMX31=$C(31)_$C(31)
- S BMXGBL="^BMXTEMP("_$J_",""HS"")",BMXERR=""
- K ^BMXTEMP($J,"HS")
- ;
- ;---> If DFN not supplied, set Error Code and quit.
- I '$G(BMXDFN) D Q
- .;D ERRCD^BMXUTL2(201,.BMXERR) S ^BMXTEMP($J,"HS",I)=BMX31_BMXERR
- ;
- ;---> If patient does not exist, set Error Code and quit.
- I '$D(^AUPNPAT(BMXDFN,0)) D Q
- .;D ERRCD^BMXUTL2(203,.BMXERR) S ^BMXTEMP($J,"HS",I)=BMX31_BMXERR
- ;
- N APCHSPAT,APCHSTYP
- S APCHSPAT=BMXDFN,APCHSTYP=7
- ;---> Doesn't work from Device 56.
- ;D GUIR^XBLM("EN^APCHS","^TMP(""BMXHS"",$J,")
- ;
- ;---> Generate a host file name.
- N BMXFN S BMXFN="XB"_$J
- ;
- D
- .;---> Important to preserve IO variables for when $I returns to 56.
- .N IO,IOBS,IOF,IOHG,IOM,ION,IOPAR,IOS,IOSL,IOST,IOT,IOUPAR,IOXY
- .;
- .;---> Open host file to receive legacy code display.
- .;S Y=$$OPEN^%ZISH($$HFSPATH^BMXUTL1,BMXFN,"W")
- .;
- .;---> Call to legacy code for Health Summary display.
- .D EN^APCHS
- .;---> Write End of File (EOF) marker.
- .W $C(9)
- .;
- .;---> %ZISC doesn't close Device 51 when called from TCPIP socket?
- .;D ^%ZISC
- .;---> Buffer won't write out to file until the device is closed
- .;---> or the buffer is flushed by some other command.
- .;---> At this point, host file exists but has 0 bytes.
- .;C 51
- .;---> Now host file contains legacy code display data.
- .;
- .;---> For some reason %ZISH cannot open the host file a second time.
- .;S Y=$$OPEN^%ZISH($$HFSPATH^BMXUTL1,BMXFN,"R")
- .;O 51:($$HFSPATH^BMXUTL1_BMXFN:"R")
- .;U 51
- .;
- .;---> Read in the host file.
- .D
- ..;---> Stop reading Host File if line contains EOF $C(9).
- ..;N I,Y F I=1:1 R Y Q:Y[$C(9) S ^TMP("BMXHS",$J,I)=Y
- .;
- .;---> %ZISC doesn't close Device 51 when called from TCPIP socket?
- .;D ^%ZISC
- .;C 51
- ;
- ;---> At this point $I=1. The job has "forgotten" its $I, even
- ;---> though %SS shows 56 as the current device. $I=1 causes a
- ;---> <NOPEN> at CAPI+10^XWBBRK2. A simple USE 56 command
- ;---> appears to "remind" the job its $I is 56, and it works.
- ;---> Possibly this is something %ZISC ordinarily does.
- ;U 56
- ;
- ;---> Copy Health Summary to global array for passing back to GUI.
- N I,N,U,X S U="^"
- S N=0
- F I=1:1 S N=$O(^TMP("BMXHS",$J,N)) Q:'N D
- .;---> Set null lines (line breaks) equal to one space, so that
- .;---> Windows reader will quit only at the final "null" line.
- .S X=^TMP("BMXHS",$J,N) S:X="" X=" "
- .S ^BMXTEMP($J,"HS",I)=X_BMX30
- ;
- ;---> If no Health Summary produced, report it as an error.
- D:'$O(^BMXTEMP($J,"HS",0))
- .;D ERRCD^BMXUTL2(407,.BMXERR) S ^BMXTEMP($J,"HS",I)=BMX31_BMXERR
- ;
- ;---> Tack on Error Delimiter and any error.
- S ^BMXTEMP($J,"HS",I)=BMX31_BMXERR
- ;
- ;---> This works; host file gets deleted.
- ;S Y=$$DEL^%ZISH($$HFSPATH^BMXUTL1,BMXFN)
- K ^TMP("BMXHS",$J)
- Q
- ;
- ;
- ;----------
- FACE(BMXGBL,BMXDFN) ;EP
- ;---> Return patient's Face Sheet in global array, ^BMXTEMP($J,"FACE".
- ;---> Lines delimited by "^".
- ;---> Called by RPC: BMX IMMSERVE PT PROFILE
- ;---> Parameters:
- ; 1 - BMXGBL (ret) Name of result global containing patient's
- ; Face Sheet, passed to Broker.
- ; 2 - BMXDFN (req) DFN of patient.
- ;
- ;---> Delimiter to pass error with result to GUI.
- N BMX30,BMX31,BMXERR,X
- S BMX30=$C(30),BMX31=$C(31)_$C(31)
- S BMXGBL="^BMXTEMP("_$J_",""FACE"")",BMXERR=""
- K ^BMXTEMP($J,"FACE")
- ;
- ;---> If DFN not supplied, set Error Code and quit.
- I '$G(BMXDFN) D Q
- .;D ERRCD^BMXUTL2(201,.BMXERR) S ^BMXTEMP($J,"FACE",I)=BMX31_BMXERR
- ;
- ;---> If patient does not exist, set Error Code and quit.
- I '$D(^AUPNPAT(BMXDFN,0)) D Q
- .;D ERRCD^BMXUTL2(203,.BMXERR) S ^BMXTEMP($J,"FACE",I)=BMX31_BMXERR
- ;
- N DFN S DFN=BMXDFN
- ;---> Doesn't work from Device 56.
- ;---> Generate a host file name.
- N BMXFN S BMXFN="XB"_$J
- ;
- D
- .;---> Important to preserve IO variables for when $I returns to 56.
- .N IO,IOBS,IOF,IOHG,IOM,ION,IOPAR,IOS,IOSL,IOST,IOT,IOUPAR,IOXY
- .;
- .;---> Open host file to receive legacy code display.
- .;S Y=$$OPEN^%ZISH($$HFSPATH^BMXUTL1,BMXFN,"W")
- .;
- .;---> Call to legacy code for Face Sheet display.
- .U 51
- .;D ^BMXFACE
- .;---> Write End of File (EOF) marker.
- .W $C(9)
- .;
- .;---> %ZISC doesn't close Device 51 when called from TCPIP socket?
- .;D ^%ZISC
- .;---> Buffer won't write out to file until the device is closed
- .;---> or the buffer is flushed by some other command.
- .;---> At this point, host file exists but has 0 bytes.
- .;C 51
- .;---> Now host file contains legacy code display data.
- .;
- .;---> For some reason %ZISH cannot open the host file a second time.
- .;S Y=$$OPEN^%ZISH($$HFSPATH^BMXUTL1,BMXFN,"R")
- .;O 51:($$HFSPATH^BMXUTL1_BMXFN:"R")
- .U 51
- .;
- .;---> Read in the host file.
- .D
- ..;---> Need some way to mark the end of legacy code output.
- ..;---> Stop reading Host File if line contains EOF $C(9).
- ..;---> (I added $C(9) above, after ^BMXFACE completed.)
- ..;N I,Y F I=1:1 R Y Q:Y[$C(9) S ^TMP("BMXFACE",$J,I)=Y
- .;
- .;---> %ZISC doesn't close Device 51 when called from TCPIP socket?
- .;D ^%ZISC
- .;C 51
- ;
- ;---> At this point $I=1. The job has "forgotten" its $I, even
- ;---> though %SS shows 56 as the current device. $I=1 causes a
- ;---> <NOPEN> at CAPI+10^XWBBRK2. A simple USE 56 command
- ;---> appears to "remind" the job its $I is 56, and it works.
- ;---> Possibly this is something %ZISC ordinarily does.
- U 56
- ;
- ;---> Copy Face Sheet to global array for passing back to GUI.
- N I,N,U,X S U="^"
- S N=0
- F I=1:1 S N=$O(^TMP("BMXFACE",$J,N)) Q:'N D
- .;---> Set null lines (line breaks) equal to one space, so that
- .;---> Windows reader will quit only at the final "null" line.
- .S X=^TMP("BMXFACE",$J,N) S:X="" X=" "
- .;---> Remove Carriage Return (13)_Formfeed (12) characters.
- .I X[$C(13)_$C(12) S X=$P(X,$C(13)_$C(12),2)
- .;
- .S ^BMXTEMP($J,"FACE",I)=X_BMX30
- ;
- ;---> If no Health Summary produced, report it as an error.
- D:'$O(^BMXTEMP($J,"FACE",0))
- .;D ERRCD^BMXUTL2(408,.BMXERR) S ^BMXTEMP($J,"FACE",I)=BMX31_BMXERR
- ;
- ;---> Tack on Error Delimiter and any error.
- S ^BMXTEMP($J,"FACE",I)=BMX31_BMXERR
- ;
- ;---> This works; host file gets deleted.
- ;S Y=$$DEL^%ZISH($$HFSPATH^BMXUTL1,BMXFN)
- K ^TMP("BMXFACE",$J)
- Q
- BMXRPC1 ; IHS/OIT/HMW - UTIL: REMOTE PROCEDURE CALLS ;
- +1 ;;4.0;BMX;;JUN 28, 2010
- +2 ;;* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER *
- +3 ;; UTILITY: CODE FOR REMOTE PROCEDURE CALLS.
- +4 ;; RETURNS PATIENT DATA, HEALTH SUMMARY, FACE SHEET.
- +5 ;
- +6 ;
- +7 ;----------
- PDATA(BMXDATA,BMXDFN) ;EP
- +1 ;---> Return Patient Data in 5 ^-delimited pieces:
- +2 ;---> 1 - DOB in format: OCT 01,1994.
- +3 ;---> 2 - Age in format: 35 Months.
- +4 ;---> 3 - Text of Patient's sex.
- +5 ;---> 4 - HRCN in the format XX-XX-XX.
- +6 ;---> 5 - Text of ACTIVE/INACTIVE Status.
- +7 ;---> Parameters:
- +8 ; 1 - BMXDATA (ret) String of patient data||error.
- +9 ; 2 - BMXDFN (req) DFN of patient.
- +10 ;
- +11 ;---> Delimiter to pass error with result to GUI.
- +12 NEW BMX31,BMXERR
- SET BMX31=$CHAR(31)_$CHAR(31)
- +13 SET BMXDATA=""
- SET BMXERR=""
- +14 ;
- +15 ;---> If DFN not supplied, set Error Code and quit.
- +16 IF '$GET(BMXDFN)
- Begin DoDot:1
- +17 ;D ERRCD^BMXUTL2(201,.BMXERR) S BMXDATA=BMX31_BMXERR
- End DoDot:1
- QUIT
- +18 ;
- +19 ;---> DOB.
- +20 SET BMXDATA=$$TXDT1^BMXUTL5($$DOB^BMXUTL1(BMXDFN))
- +21 ;
- +22 ;---> Age.
- +23 SET BMXDATA=BMXDATA_U_$$AGEF^BMXUTL1(BMXDFN)
- +24 ;
- +25 ;---> Text of sex.
- +26 SET BMXDATA=BMXDATA_U_$$SEXW^BMXUTL1(BMXDFN)
- +27 ;
- +28 ;---> HRCN, format XX-XX-XX.
- +29 SET BMXDATA=BMXDATA_U_$$HRCN^BMXUTL1(BMXDFN)
- +30 ;
- +31 ;---> Active/Inactive Status.
- +32 ;S BMXDATA=BMXDATA_U_$$ACTIVE^BMXUTL1(BMXDFN)
- +33 ;
- +34 SET BMXDATA=BMXDATA_BMX31
- +35 ;
- +36 QUIT
- +37 ;
- +38 ;
- +39 ;----------
- HS(BMXGBL,BMXDFN) ;EP
- +1 ;---> Return patient's Health Summary in global array, ^BMXTEMP($J,"HS".
- +2 ;---> Lines delimited by "^".
- +3 ;---> Called by RPC: BMX IMMSERVE PT PROFILE
- +4 ;---> Parameters:
- +5 ; 1 - BMXGBL (ret) Name of result global containing patient's
- +6 ; Health Summary, passed to Broker.
- +7 ; 2 - BMXDFN (req) DFN of patient.
- +8 ;
- +9 ;---> Delimiter to pass error with result to GUI.
- +10 NEW BMX30,BMX31,BMXERR,X
- +11 SET BMX30=$CHAR(30)
- SET BMX31=$CHAR(31)_$CHAR(31)
- +12 SET BMXGBL="^BMXTEMP("_$JOB_",""HS"")"
- SET BMXERR=""
- +13 KILL ^BMXTEMP($JOB,"HS")
- +14 ;
- +15 ;---> If DFN not supplied, set Error Code and quit.
- +16 IF '$GET(BMXDFN)
- Begin DoDot:1
- +17 ;D ERRCD^BMXUTL2(201,.BMXERR) S ^BMXTEMP($J,"HS",I)=BMX31_BMXERR
- End DoDot:1
- QUIT
- +18 ;
- +19 ;---> If patient does not exist, set Error Code and quit.
- +20 IF '$DATA(^AUPNPAT(BMXDFN,0))
- Begin DoDot:1
- +21 ;D ERRCD^BMXUTL2(203,.BMXERR) S ^BMXTEMP($J,"HS",I)=BMX31_BMXERR
- End DoDot:1
- QUIT
- +22 ;
- +23 NEW APCHSPAT,APCHSTYP
- +24 SET APCHSPAT=BMXDFN
- SET APCHSTYP=7
- +25 ;---> Doesn't work from Device 56.
- +26 ;D GUIR^XBLM("EN^APCHS","^TMP(""BMXHS"",$J,")
- +27 ;
- +28 ;---> Generate a host file name.
- +29 NEW BMXFN
- SET BMXFN="XB"_$JOB
- +30 ;
- +31 Begin DoDot:1
- +32 ;---> Important to preserve IO variables for when $I returns to 56.
- +33 NEW IO,IOBS,IOF,IOHG,IOM,ION,IOPAR,IOS,IOSL,IOST,IOT,IOUPAR,IOXY
- +34 ;
- +35 ;---> Open host file to receive legacy code display.
- +36 ;S Y=$$OPEN^%ZISH($$HFSPATH^BMXUTL1,BMXFN,"W")
- +37 ;
- +38 ;---> Call to legacy code for Health Summary display.
- +39 DO EN^APCHS
- +40 ;---> Write End of File (EOF) marker.
- +41 WRITE $CHAR(9)
- +42 ;
- +43 ;---> %ZISC doesn't close Device 51 when called from TCPIP socket?
- +44 ;D ^%ZISC
- +45 ;---> Buffer won't write out to file until the device is closed
- +46 ;---> or the buffer is flushed by some other command.
- +47 ;---> At this point, host file exists but has 0 bytes.
- +48 ;C 51
- +49 ;---> Now host file contains legacy code display data.
- +50 ;
- +51 ;---> For some reason %ZISH cannot open the host file a second time.
- +52 ;S Y=$$OPEN^%ZISH($$HFSPATH^BMXUTL1,BMXFN,"R")
- +53 ;O 51:($$HFSPATH^BMXUTL1_BMXFN:"R")
- +54 ;U 51
- +55 ;
- +56 ;---> Read in the host file.
- +57 Begin DoDot:2
- +58 ;---> Stop reading Host File if line contains EOF $C(9).
- +59 ;N I,Y F I=1:1 R Y Q:Y[$C(9) S ^TMP("BMXHS",$J,I)=Y
- End DoDot:2
- +60 ;
- +61 ;---> %ZISC doesn't close Device 51 when called from TCPIP socket?
- +62 ;D ^%ZISC
- +63 ;C 51
- End DoDot:1
- +64 ;
- +65 ;---> At this point $I=1. The job has "forgotten" its $I, even
- +66 ;---> though %SS shows 56 as the current device. $I=1 causes a
- +67 ;---> <NOPEN> at CAPI+10^XWBBRK2. A simple USE 56 command
- +68 ;---> appears to "remind" the job its $I is 56, and it works.
- +69 ;---> Possibly this is something %ZISC ordinarily does.
- +70 ;U 56
- +71 ;
- +72 ;---> Copy Health Summary to global array for passing back to GUI.
- +73 NEW I,N,U,X
- SET U="^"
- +74 SET N=0
- +75 FOR I=1:1
- SET N=$ORDER(^TMP("BMXHS",$JOB,N))
- IF 'N
- QUIT
- Begin DoDot:1
- +76 ;---> Set null lines (line breaks) equal to one space, so that
- +77 ;---> Windows reader will quit only at the final "null" line.
- +78 SET X=^TMP("BMXHS",$JOB,N)
- IF X=""
- SET X=" "
- +79 SET ^BMXTEMP($JOB,"HS",I)=X_BMX30
- End DoDot:1
- +80 ;
- +81 ;---> If no Health Summary produced, report it as an error.
- +82 IF '$ORDER(^BMXTEMP($JOB,"HS",0))
- Begin DoDot:1
- +83 ;D ERRCD^BMXUTL2(407,.BMXERR) S ^BMXTEMP($J,"HS",I)=BMX31_BMXERR
- End DoDot:1
- +84 ;
- +85 ;---> Tack on Error Delimiter and any error.
- +86 SET ^BMXTEMP($JOB,"HS",I)=BMX31_BMXERR
- +87 ;
- +88 ;---> This works; host file gets deleted.
- +89 ;S Y=$$DEL^%ZISH($$HFSPATH^BMXUTL1,BMXFN)
- +90 KILL ^TMP("BMXHS",$JOB)
- +91 QUIT
- +92 ;
- +93 ;
- +94 ;----------
- FACE(BMXGBL,BMXDFN) ;EP
- +1 ;---> Return patient's Face Sheet in global array, ^BMXTEMP($J,"FACE".
- +2 ;---> Lines delimited by "^".
- +3 ;---> Called by RPC: BMX IMMSERVE PT PROFILE
- +4 ;---> Parameters:
- +5 ; 1 - BMXGBL (ret) Name of result global containing patient's
- +6 ; Face Sheet, passed to Broker.
- +7 ; 2 - BMXDFN (req) DFN of patient.
- +8 ;
- +9 ;---> Delimiter to pass error with result to GUI.
- +10 NEW BMX30,BMX31,BMXERR,X
- +11 SET BMX30=$CHAR(30)
- SET BMX31=$CHAR(31)_$CHAR(31)
- +12 SET BMXGBL="^BMXTEMP("_$JOB_",""FACE"")"
- SET BMXERR=""
- +13 KILL ^BMXTEMP($JOB,"FACE")
- +14 ;
- +15 ;---> If DFN not supplied, set Error Code and quit.
- +16 IF '$GET(BMXDFN)
- Begin DoDot:1
- +17 ;D ERRCD^BMXUTL2(201,.BMXERR) S ^BMXTEMP($J,"FACE",I)=BMX31_BMXERR
- End DoDot:1
- QUIT
- +18 ;
- +19 ;---> If patient does not exist, set Error Code and quit.
- +20 IF '$DATA(^AUPNPAT(BMXDFN,0))
- Begin DoDot:1
- +21 ;D ERRCD^BMXUTL2(203,.BMXERR) S ^BMXTEMP($J,"FACE",I)=BMX31_BMXERR
- End DoDot:1
- QUIT
- +22 ;
- +23 NEW DFN
- SET DFN=BMXDFN
- +24 ;---> Doesn't work from Device 56.
- +25 ;---> Generate a host file name.
- +26 NEW BMXFN
- SET BMXFN="XB"_$JOB
- +27 ;
- +28 Begin DoDot:1
- +29 ;---> Important to preserve IO variables for when $I returns to 56.
- +30 NEW IO,IOBS,IOF,IOHG,IOM,ION,IOPAR,IOS,IOSL,IOST,IOT,IOUPAR,IOXY
- +31 ;
- +32 ;---> Open host file to receive legacy code display.
- +33 ;S Y=$$OPEN^%ZISH($$HFSPATH^BMXUTL1,BMXFN,"W")
- +34 ;
- +35 ;---> Call to legacy code for Face Sheet display.
- +36 USE 51
- +37 ;D ^BMXFACE
- +38 ;---> Write End of File (EOF) marker.
- +39 WRITE $CHAR(9)
- +40 ;
- +41 ;---> %ZISC doesn't close Device 51 when called from TCPIP socket?
- +42 ;D ^%ZISC
- +43 ;---> Buffer won't write out to file until the device is closed
- +44 ;---> or the buffer is flushed by some other command.
- +45 ;---> At this point, host file exists but has 0 bytes.
- +46 ;C 51
- +47 ;---> Now host file contains legacy code display data.
- +48 ;
- +49 ;---> For some reason %ZISH cannot open the host file a second time.
- +50 ;S Y=$$OPEN^%ZISH($$HFSPATH^BMXUTL1,BMXFN,"R")
- +51 ;O 51:($$HFSPATH^BMXUTL1_BMXFN:"R")
- +52 USE 51
- +53 ;
- +54 ;---> Read in the host file.
- +55 Begin DoDot:2
- +56 ;---> Need some way to mark the end of legacy code output.
- +57 ;---> Stop reading Host File if line contains EOF $C(9).
- +58 ;---> (I added $C(9) above, after ^BMXFACE completed.)
- +59 ;N I,Y F I=1:1 R Y Q:Y[$C(9) S ^TMP("BMXFACE",$J,I)=Y
- End DoDot:2
- +60 ;
- +61 ;---> %ZISC doesn't close Device 51 when called from TCPIP socket?
- +62 ;D ^%ZISC
- +63 ;C 51
- End DoDot:1
- +64 ;
- +65 ;---> At this point $I=1. The job has "forgotten" its $I, even
- +66 ;---> though %SS shows 56 as the current device. $I=1 causes a
- +67 ;---> <NOPEN> at CAPI+10^XWBBRK2. A simple USE 56 command
- +68 ;---> appears to "remind" the job its $I is 56, and it works.
- +69 ;---> Possibly this is something %ZISC ordinarily does.
- +70 USE 56
- +71 ;
- +72 ;---> Copy Face Sheet to global array for passing back to GUI.
- +73 NEW I,N,U,X
- SET U="^"
- +74 SET N=0
- +75 FOR I=1:1
- SET N=$ORDER(^TMP("BMXFACE",$JOB,N))
- IF 'N
- QUIT
- Begin DoDot:1
- +76 ;---> Set null lines (line breaks) equal to one space, so that
- +77 ;---> Windows reader will quit only at the final "null" line.
- +78 SET X=^TMP("BMXFACE",$JOB,N)
- IF X=""
- SET X=" "
- +79 ;---> Remove Carriage Return (13)_Formfeed (12) characters.
- +80 IF X[$CHAR(13)_$CHAR(12)
- SET X=$PIECE(X,$CHAR(13)_$CHAR(12),2)
- +81 ;
- +82 SET ^BMXTEMP($JOB,"FACE",I)=X_BMX30
- End DoDot:1
- +83 ;
- +84 ;---> If no Health Summary produced, report it as an error.
- +85 IF '$ORDER(^BMXTEMP($JOB,"FACE",0))
- Begin DoDot:1
- +86 ;D ERRCD^BMXUTL2(408,.BMXERR) S ^BMXTEMP($J,"FACE",I)=BMX31_BMXERR
- End DoDot:1
- +87 ;
- +88 ;---> Tack on Error Delimiter and any error.
- +89 SET ^BMXTEMP($JOB,"FACE",I)=BMX31_BMXERR
- +90 ;
- +91 ;---> This works; host file gets deleted.
- +92 ;S Y=$$DEL^%ZISH($$HFSPATH^BMXUTL1,BMXFN)
- +93 KILL ^TMP("BMXFACE",$JOB)
- +94 QUIT