Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: BTIULO16

BTIULO16.m

Go to the documentation of this file.
  1. BTIULO16 ; IHS/MSC/MGH - EYE RX OBJECT ;03-Sep-2013 12:14;DU
  1. ;;1.0;TEXT INTEGRATION UTILITIES;**1010,1012**;NOV 04, 2004;Build 45
  1. EYERX(DFN,TARGET) ;Print eye-glass prescription
  1. N INVDT,BGOIEN,CNT
  1. S (INVDT,BGOIEN)=""
  1. K @TARGET
  1. S CNT=0
  1. S INVDT=$O(^AUPNVEYE("AA",DFN,""))
  1. I INVDT="" S @TARGET@(1,0)="No eye exam on file"
  1. E D
  1. .S BGOIEN=9999999
  1. .F S BGOIEN=$O(^AUPNVEYE("AA",DFN,INVDT,BGOIEN),-1) Q:BGOIEN="" D
  1. ..;I BGOIEN="" S @TARGET@(1,0)="No eye exam on file"
  1. ..D PRINT(BGOIEN)
  1. I CNT=0 S @TARGET@(1,0)="No eye exam on file"
  1. Q "~@"_$NA(@TARGET)
  1. PRINT(BGOIEN) ;print out the RX
  1. N X,J,BGODFN,ONE,EDATA,READ,PAT,FNUM,DASH,UNDER,SPACE,PROV,PROVNAME,ADDR,ADDR2,FAC
  1. N VDATE,VIEN,EDATE,COMMENT,EYE,LSPHERE,RSPHERE,LAXIS,RAXIS,LCYL,RCYL,LPD,RPD,LREAD,RREAD
  1. N LPRISMH,PDNEAR,PDFAR,LRPISMH,LPRISMHN,LPRISMHV,LPRISMV,LPRISMVN,LPRISMVV,RPRISMH,RPRISMHN,RPRISMV,RPRISMHV,RPRISMVN,RPRISMVV
  1. N ZIP,DASH2,SPACE2,STATE,CITY,LHX,LVT,RHX,RVT,PATNAME,INST,X1,FTXT,NTXT,TYPE
  1. N DIWF,DIWL,DIWR
  1. S FNUM=$$FNUM
  1. S ONE=$G(^AUPNVEYE(BGOIEN,0))
  1. S EDATA=$G(^AUPNVEYE(BGOIEN,19))
  1. ;Get pt data
  1. S PAT=$P(ONE,U,2)
  1. S PATNAME=$$FNAME^BTIUPCC2(PAT)_" "_$$LNAME^BTIUPCC2(PAT)
  1. S PAT=$$GET1^DIQ(2,$P(ONE,U,2),.01)
  1. S VDATE=$$GET1^DIQ(9000010,$P(ONE,U,3),.01)
  1. S PROV=$P($G(^AUPNVEYE(BGOIEN,12)),U,4)
  1. I PROV'="" S PROVNAME=$P($G(^VA(200,PROV,20)),U,2)
  1. S X=$$SITE^VASITE()
  1. S INST=$P(X,U,1)
  1. S FAC=$P(X,U,2)
  1. S ADDR=$$GET1^DIQ(4,INST,1.01)
  1. S ADDR2=$$GET1^DIQ(4,INST,1.02)
  1. S STATE=$$GET1^DIQ(4,INST,.02)
  1. S CITY=$$GET1^DIQ(4,INST,1.03)
  1. S ZIP=$$GET1^DIQ(4,INST,1.04)
  1. ;Get right eye data
  1. S RSPHERE=$$EXTERNAL^DILFD(FNUM,1902,,$P(EDATA,U,2))
  1. I RSPHERE="" S RSPHERE=" "
  1. S RCYL=$$EXTERNAL^DILFD(FNUM,1903,,$P(EDATA,U,3))
  1. I RCYL="" S RCYL=" "
  1. S RAXIS=$$EXTERNAL^DILFD(FNUM,1904,,$P(EDATA,U,4))
  1. I RAXIS="" S RAXIS=" "
  1. S RREAD=$$EXTERNAL^DILFD(FNUM,1908,,$P(EDATA,U,8))
  1. S RPRISMH=$$EXTERNAL^DILFD(FNUM,1915,,$P(EDATA,U,15))
  1. S RPRISMHN=+RPRISMH
  1. I RPRISMHN=0 S RPRISMHN=""
  1. S RPRISMHV=$S(RPRISMH["BI":"BI",RPRISMH["BO":"BO",RPRISMH["BU":"BU",RPRISMH["BD":"BD",1:"")
  1. S RPRISMV=$$EXTERNAL^DILFD(FNUM,1917,,$P(EDATA,U,17))
  1. S RPRISMVN=+RPRISMH
  1. I RPRISMVN=0 S RPRISMVN=""
  1. S RPRISMVV=$S(RPRISMV["BI":"BI",RPRISMV["BO":"BO",RPRISMV["BU":"BU",RPRISMV["BD":"BD",1:"")
  1. S RPD=$$EXTERNAL^DILFD(FNUM,1920,,$P(EDATA,U,20))
  1. ;Get left eye data
  1. S LSPHERE=$$EXTERNAL^DILFD(FNUM,1902,,$P(EDATA,U,5))
  1. I LSPHERE="" S LSPHERE=" "
  1. S LCYL=$$EXTERNAL^DILFD(FNUM,1903,,$P(EDATA,U,6))
  1. I LCYL="" S LCYL=" "
  1. S LAXIS=$$EXTERNAL^DILFD(FNUM,1904,,$P(EDATA,U,7))
  1. I LAXIS="" S LAXIS=" "
  1. S LREAD=$$EXTERNAL^DILFD(FNUM,1909,,$P(EDATA,U,9))
  1. S LPRISMH=$$EXTERNAL^DILFD(FNUM,1915,,$P(EDATA,U,16))
  1. S LPRISMHN=+LPRISMH
  1. I LPRISMHN=0 S LPRISMHN=""
  1. S LPRISMHV=$S(LPRISMH["BI":"BI",LPRISMH["BO":"BO",LPRISMH["BU":"BU",LPRISMH["BD":"BD",1:"")
  1. S LPRISMV=$$EXTERNAL^DILFD(FNUM,1917,,$P(EDATA,U,18))
  1. S LPRISMVN=+LPRISMV
  1. I LPRISMVN=0 S LPRISMVN=""
  1. S LPRISMVV=$S(LPRISMV["BI":"BI",LPRISMV["BO":"BO",LPRISMV["BU":"BU",LPRISMV["BD":"BD",1:"")
  1. S LPD=$$EXTERNAL^DILFD(FNUM,1919,,$P(EDATA,U,19))
  1. ;Pupil distance
  1. S PDNEAR=$$EXTERNAL^DILFD(FNUM,1913,,$P(EDATA,U,13))
  1. I PDNEAR="" S PDNEAR=" "
  1. S PDFAR=$$EXTERNAL^DILFD(FNUM,1914,,$P(EDATA,U,14))
  1. I PDFAR="" S PDFAR=" "
  1. S READ=$$EXTERNAL^DILFD(FNUM,1901,,$P(EDATA,U,1))
  1. S COMMENT=$G(^AUPNVEYE(BGOIEN,11))
  1. S $P(DASH,"-",65)="-"
  1. S DASH2=$$STRING
  1. S $P(SPACE," ",65)=" "
  1. S $p(SPACE2," ",63)=" "
  1. S $P(UNDER,"_",12)="_"
  1. ;Write out prescription
  1. S LHX=LPRISMHN_LPRISMHV
  1. S RHX=RPRISMHN_RPRISMHV
  1. S LVT=LPRISMVN_LPRISMVV
  1. S RVT=RPRISMVN_RPRISMVV
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=""
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=""
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=DASH
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=SPACE
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=" "_FAC
  1. S @TARGET@(CNT,0)=" "_ADDR
  1. S CNT=CNT+1
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=" "_CITY_" "_STATE_" "_ZIP
  1. I ADDR2'="" D
  1. .S CNT=CNT+1
  1. .S @TARGET@(CNT,0)=" "_ADDR2
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=SPACE
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)="Patient: "_PATNAME_" Date: "_VDATE
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=" Expiration: "_UNDER
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=SPACE
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=DASH
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=" SPHERE CYL AXIS NEAR PRISM PRISM"
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=" ADD HZ VT"
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=DASH
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)="OD "_RSPHERE_" "_RCYL_" "_RAXIS_" "_RREAD_" "_RHX_" "_RVT
  1. W $L(@TARGET@(CNT,0))
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=DASH
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)="OS "_LSPHERE_" "_LCYL_" "_LAXIS_" "_LREAD_" "_LHX_" "_LVT
  1. W $L(@TARGET@(CNT,0))
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=DASH
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=""
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)="Pupil Distance"
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=DASH
  1. S NTXT="" I +RPD S NTXT="R PUPIL"
  1. S FTXT="" I +LPD S FTXT="L PUPIL"
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=" NEAR DISTANCE "_NTXT_" "_FTXT
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=" "_PDNEAR_" "_PDFAR_" "_RPD_" "_LPD
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=DASH
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=""
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)="Instructions"
  1. S TYPE=$P(COMMENT,"~",1),COMMENT=$P(COMMENT,"~",2)
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=" "_TYPE
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=""
  1. K ^UTILITY($J,"W")
  1. S X=COMMENT,DIWL=0,DIWR=60,DIWF="" D ^DIWP
  1. S J=$G(^UTILITY($J,"W",0))
  1. F I=1:1:J S CNT=CNT+1 S @TARGET@(CNT,0)=" "_$G(^UTILITY($J,"W",0,I,0))
  1. K ^UTILITY($J,"W")
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=""
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)="Provider: "_PROVNAME
  1. S CNT=CNT+1
  1. S @TARGET@(CNT,0)=DASH
  1. Q
  1. EYE(DFN,TARGET) ;print RX
  1. FNUM() Q 9000010.04
  1. STRING() N STR,VAL,I
  1. S STR=""
  1. F I=1:1:62 S STR=STR_"-"
  1. S VAL=STR
  1. Q VAL