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

BSDX41.m

Go to the documentation of this file.
  1. BSDX41 ; IHS/OIT/HMW/MSC/SAT - WINDOWS SCHEDULING RPCS ;
  1. ;;3.0;IHS WINDOWS SCHEDULING;;DEC 09, 2010
  1. ;
  1. ;return Health Summary output
  1. HS(BSDXY,DFN) ;Health Summary
  1. ; DFN = ien of VA PATIENT (^DPT) file 2
  1. ;Called by BSDX HEALTH SUMMARY remote procedure
  1. N BSDXI,BSDXSPSG
  1. D ^XBKVAR S X="ERROR^BSDXERR",@^%ZOSF("TRAP")
  1. S BSDXI=0
  1. K ^BSDXTMP($J)
  1. S BSDXY="^BSDXTMP("_$J_")"
  1. S ^BSDXTMP($J,0)="T00080ERRORID"_$C(30)
  1. I '+DFN D ERR^BSDXERR("Invalid Patient ID.") Q
  1. I '$D(^DPT(DFN,0)) D ERR^BSDXERR("Invalid Patient ID.") Q
  1. S APCHSPAT=$O(^AUPNPAT("B",DFN,0))
  1. I '+APCHSPAT D ERR^BSDXERR("Invalid Patient ID.") Q
  1. I $D(^DISV(DUZ,"APCHSCTL(")) S APCHSTYP=^DISV(DUZ,"APCHSCTL(")
  1. I $G(APCHSTYP)="",+$P($G(^APCCCTRL(DUZ(2),0)),U,3) S APCHSTYP=$P(^APCCCTRL(DUZ(2),0),U,3)
  1. I $G(APCHSTYP)="" D ERR^BSDXERR("Health Summary Type not defined in PCC Master Control file.") Q
  1. D SUPSEGS(.BSDXSPSG)
  1. ;
  1. S ^BSDXTMP($J,0)="T10000TEXT"_$C(30)
  1. S APCHSCKP="Q:$D(APCHSQIT) S APCHSNPG=0 I $Y>(IOSL-3) "
  1. S APCHSBRK="D BREAK^BSDX41"
  1. S APCHSCVD="S:Y]"""" Y=+Y,Y=$E(Y,4,5)_""/""_$S($E(Y,6,7):$E(Y,6,7)_""/"",1:"""")_$E(Y,2,3)"
  1. S:'$G(IO) IO="|TRM|:|"_$J
  1. S:'$G(IOM) IOM=80
  1. S:'$G(IOSL) IOSL=24
  1. ;collect header lines
  1. S %="" D NOW^%DTC S X=% X ^DD("FUNC",2,1) S APCHSTIM=X
  1. ;***** CONFIDENTIAL PATIENT INFORMATION -- DATE/TIME **************
  1. S APCHSHDR="CONFIDENTIAL PATIENT INFORMATION -- "_$$FMTE^XLFDT(DT,5)_$J(APCHSTIM,9)_" ["_$P(^VA(200,DUZ,0),U,2)_"]"
  1. S X="",$P(X,"*",((80-6-$L(APCHSHDR))\2)+1)="*"
  1. S BSDXI=BSDXI+1 S ^BSDXTMP($J,BSDXI)=X_" "_APCHSHDR_" "_X_$C(30)
  1. S APCHSHD2=$P(^DPT(APCHSPAT,0),U)_" #"_$$HRN^AUPNPAT(APCHSPAT,DUZ(2))_" "_$$CWAD^AUPNLKID(APCHSPAT)_"("_$P(^APCHSCTL(APCHSTYP,0),U)_" SUMMARY)" ;pg "_APCHSPG
  1. S X="",$P(X,"*",((80-6-$L(APCHSHD2))\2)+1)="*"
  1. S BSDXI=BSDXI+1 S ^BSDXTMP($J,BSDXI)=X_" "_APCHSHD2_" "_X_$C(30) S BSDXI=BSDXI+1 S ^BSDXTMP($J,BSDXI)=$C(30)
  1. ;get segment data
  1. K APCHSQIT
  1. S BSDXQIET=1
  1. S APCHSEGN="",APCHSQ=""
  1. F S APCHSEGN=$O(^APCHSCTL(APCHSTYP,1,"B",APCHSEGN)) Q:APCHSEGN="" D
  1. . S APCHSEGT=$O(^APCHSCTL(APCHSTYP,1,"B",APCHSEGN,""))
  1. . D SEGMNT Q:$D(APCHSQIT)
  1. S BSDXI=BSDXI+1 S ^BSDXTMP($J,BSDXI)=$C(31)
  1. Q
  1. ;
  1. SEGMNT ; OUTPUT A SEGMENT TYPE
  1. S APCHSN=^APCHSCTL(APCHSTYP,1,APCHSEGT,0)
  1. S APCHSEGC=$P(APCHSN,U,2),APCHSEGH=$P(APCHSN,U,5)
  1. S APCHSEGP=^APCHSCMP(APCHSEGC,0)
  1. S APCHSEGC=$P(APCHSEGP,U,2)
  1. Q:'$G(BSDXSPSG($P(APCHSEGC,";",1),$P(APCHSEGC,";",2))) ;check if segment converted
  1. S $P(APCHSEGC,";",2)="BSDX41"
  1. I APCHSEGH="" S APCHSVAR=$P(APCHSEGP,U,4) S:APCHSVAR]"" APCHSEGH=APCHSVAR
  1. I APCHSEGH="" S APCHSEGH=$P(APCHSEGP,U,1)
  1. S APCHSVAR=$P(APCHSEGP,U,5) I APCHSVAR]"",$D(^XUSEC(APCHSVAR,DUZ))[0 Q
  1. S APCHSN=^APCHSCTL(APCHSTYP,1,APCHSEGT,0) S APCHSNDM=$P(APCHSN,U,3),APCHSDLM=$P(APCHSN,U,4) S:APCHSNDM="" APCHSNDM=-1 ;S:APCHSNDM>0 APCHSNDM=APCHSNDM+1
  1. ;LIMIT OF TIME OR VISITS
  1. S APCHSDLS=""
  1. I APCHSDLM?1N.N!(APCHSDLM?1N.N1"D") S APCHSDLS=+APCHSDLM_" day"
  1. S:APCHSDLM?1N.N1"M" APCHSDLS=+APCHSDLM_" month",APCHSDLM=+APCHSDLM*30
  1. S:APCHSDLM?1N.N1"Y" APCHSDLS=+APCHSDLM_" year",APCHSDLM=+APCHSDLM*365
  1. S APCHSDLM=+APCHSDLM
  1. S:+APCHSDLS>1 APCHSDLS=APCHSDLS_"s"
  1. S APCHSEGL="" I APCHSNDM>0!(APCHSDLM>0) S APCHSEGL=" (max "_$S(APCHSNDM>0:APCHSNDM_$S(APCHSNDM=1:" visit",1:" visits")_$S(APCHSDLM>0:" or ",1:""),1:"")_$S(APCHSDLM>0:APCHSDLS,1:"")_")"
  1. K APCHSDLS,APCHSN
  1. I APCHSDLM'>0 S APCHSDLM=9999999
  1. E S X1=DT,X2=-APCHSDLM D C^%DTC S APCHSDLM=9999999-X K X1,X2
  1. D @($P(APCHSEGC,";",1)_U_$P(APCHSEGC,";",2))
  1. Q
  1. ;
  1. ;******* KETCHUP,LOIS (CMED SUMMARY) pg. 1 ********************
  1. S APCHSPG=APCHSPG+1
  1. S APCHSHD2=$P(^DPT(APCHSPAT,0),U)_" #"_$$HRN^AUPNPAT(APCHSPAT,DUZ(2))_" "_$$CWAD^AUPNLKID(APCHSPAT)_"("_$P(^APCHSCTL(APCHSTYP,0),U)_" SUMMARY) pg "_APCHSPG ;IHS/ANMC/LJF 4/30/99
  1. S APCHSP="",$P(APCHSP,"*",((IOM-6-$L(APCHSHD2))\2)+1)="*",APCHSP=APCHSP_" "_APCHSHD2_" "_APCHSP
  1. S BSDXI=BSDXI+1 S ^BSDXTMP($J,BSDXI)=$C(30) S BSDXI=BSDXI+1 S ^BSDXTMP($J,BSDXI)=APCHSHDR_$C(30) S BSDXI=BSDXI+1 S ^BSDXTMP($J,BSDXI)=APCHSP_$C(30)
  1. Q
  1. ;
  1. BREAK ;ENTRY POINT
  1. ;APCHSEGH IS THE COMPONENT TYPE FROM ^APCHSCMP, FROM SEGMNT ABOVE
  1. ;------- MEDICATIONS --------------------
  1. N QF
  1. S APCHSP="",$P(APCHSP,"-",+$G(IOM)-3-$L(APCHSEGH_APCHSEGL)/2)="",APCHSP=APCHSP_" "_APCHSEGH_APCHSEGL_" "_APCHSP
  1. I $Y'>(IOSL-5) D
  1. . S BSDXI=BSDXI+1 S ^BSDXTMP($J,BSDXI)=$C(30) S BSDXI=BSDXI+1 S ^BSDXTMP($J,BSDXI)=APCHSP_$C(30) S BSDXI=BSDXI+1 S ^BSDXTMP($J,BSDXI)=$C(30)
  1. . S QF=1
  1. I +$G(QF) Q
  1. S BSDXI=BSDXI+1 S ^BSDXTMP($J,BSDXI)=$C(30)
  1. X APCHSCKP
  1. Q
  1. ;
  1. SUPSEGS(BSDXSPSG) ;build array of supported segments
  1. K BSDXSPSG
  1. ; BSDXSPSG(<TAG>,<ORIG ROUTINE>)=1
  1. S BSDXSPSG("ALLRG","APCHGMTS")=1 ;allergies
  1. S BSDXSPSG("DEMOG","APCHS1")=1 ;patient demographics
  1. S BSDXSPSG("EYERX","APCHS8A")=1 ;eye glass prescriptions
  1. S BSDXSPSG("FLOW","APCHS12")=1 ;flow sheet production
  1. S BSDXSPSG("HFACT","APCHS4A")=1 ;health factors
  1. S BSDXSPSG("HOS","APCHS6")=1 ;history of surgery
  1. S BSDXSPSG("INHOSP","APCHS2B")=1 ;in hospital encounters
  1. S BSDXSPSG("IMMUN","APCHS2")=1 ;immunizations
  1. S BSDXSPSG("INPT","APCHS2C")=1 ;hospitalization encounters
  1. S BSDXSPSG("INS","APCHS5")=1 ;insurance
  1. S BSDXSPSG("MCIS","APCHS9")=1 ;managed care MIS
  1. S BSDXSPSG("MEASP","APCHS2A")=1 ;measurement panels
  1. S BSDXSPSG("MEDSCURR","APCHS7")=1 ;current meds
  1. S BSDXSPSG("MRE","APCHS3C")=1 ;most recent examination
  1. S BSDXSPSG("MRL","APCHS3A")=1 ;most recent lab
  1. S BSDXSPSG("MRPTED","APCHS10")=1 ;most recent patient education
  1. S BSDXSPSG("MRR","APCHS3C")=1 ;most recent radiology
  1. S BSDXSPSG("OUTPT","APCHS2B")=1 ;outpatient encounters
  1. S BSDXSPSG("PROBA","APCHS40")=1 ;allergy problems
  1. S BSDXSPSG("REPHX","APCHS8")=1 ;reproductive history
  1. S BSDXSPSG("SCHENC","APCHS2D")=1 ;scheduled encounters
  1. ;S BSDXSPSG("SURV","APCHS11")=1 ;surveillance hard code ;not supported yet; appears to use routines in APCHM series;
  1. S BSDXSPSG("TRTMT","APCHS8")=1 ;treatments
  1. ;these are not in the test scenario and have not been tested
  1. ;S BSDXSPSG("BIRTHM","APCHS8")=1 ;birth measurements*
  1. ;S BSDXSPSG("EKG","APCHS8A")=1 ;EKG summary*
  1. ;S BSDXSPSG("MEAS","APCHS2")=1 ;measurements*
  1. ;S BSDXSPSG("MEDSALL","APCHS7")=1 ;all meds*
  1. ;S BSDXSPSG("MEDSCHRN","APCHS7")=1 ;chronic meds*
  1. ;S BSDXSPSG("MEDSCHR1","APCHS7")=1 ;chronic meds; not DC'd*
  1. ;S BSDXSPSG("MEDSNDUP","APCHS7")=1 ;all meds, not duplicated*
  1. ;S BSDXSPSG("OFFHX","APCHS8")=1 ;offspring history*
  1. ;S BSDXSPSG("PTED","APCHS10")=1 ;patient education
  1. Q
  1. ;
  1. ALLRG ;allergies
  1. G ALLRG^BSDX41C
  1. BIRTHM ;birth measurements
  1. G BIRTHM^BSDX41E
  1. DEMOG ;patient demographics
  1. G DEMOG^BSDX41A
  1. EKG ;EKG summary
  1. G EKG^BSDX41D
  1. EYERX ;eye glass perscriptions
  1. G EYERX^BSDX41D
  1. FLOW ;flow sheet production
  1. G FLOW^BSDX41N
  1. HFACT ;health factors
  1. G HFACT^BSDX41B
  1. HOS ;history of surgery
  1. G HOS^BSDX41F
  1. INHOSP ;InHospital Encounters
  1. G INHOSP^BSDX41I
  1. INPT ;hospitalization encounters
  1. G INPT^BSDX41I
  1. IMMUN ;immunizations
  1. G IMMUN^BSDX41H
  1. INS ;insurance
  1. G INS^BSDX41B
  1. MCIS ;managed care MIS
  1. G MCIS^BSDX41J
  1. MEAS ;measurements
  1. G MEAS^BSDX41H
  1. MEASP ;measurement panels
  1. G MEASP^BSDX41D
  1. MEDSALL ;all meds
  1. G MEDSALL^BSDX41G
  1. MEDSCHRN ;chronic meds
  1. G MEDSCHRN^BSDX41G
  1. MEDSCHR1 ;chronic meds; not DC'd
  1. G MEDSCHR1^BSDX41G
  1. MEDSCURR ;current meds
  1. G MEDSCURR^BSDX41G
  1. MEDSNDUP ;all meds; non duplicated
  1. G MEDSNDUP^BSDX41G
  1. MRE ;most recent examination
  1. G MRE^BSDX41K
  1. MRL ;most recent lab
  1. G MRL^BSDX41J
  1. MRPTED ;most recent patient education
  1. G MRPTED^BSDX41L
  1. MRR ;most recent radiology
  1. G MRR^BSDX41K
  1. OFFHX ;offspring history
  1. G OFFHX^BSDX41E
  1. OUTPT ;outpatient encounters
  1. G OUTPT^BSDX41I
  1. PROBA ;allergy problems
  1. G PROBA^BSDX41C
  1. PTED ;patient education
  1. G PTED^BSDX41L
  1. REPHX ;reproductive history
  1. G REPHX^BSDX41E
  1. SCHENC ;scheduled encounters
  1. G SCHENC^BSDX41I
  1. SURV ;surveillance hard code
  1. G SURV^BSDX41M
  1. TRTMT ;treatments
  1. G TRTMT^BSDX41E
  1. ;
  1. Q
  1. ;
  1. FILL(PADS,CHAR=" ")
  1. N I
  1. S RET=""
  1. F I=1:1:PADS S RET=RET_CHAR
  1. Q RET