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

DGPTRNU1.m

Go to the documentation of this file.
  1. DGPTRNU1 ;ISF/GJW,HIOFO/FT - PTF TRANSMISSION UTILITY ;4/20/15 10:28am
  1. ;;5.3;Registration;**884**;Aug 13, 1993;Build 31
  1. ;
  1. ;no external references
  1. ;
  1. DXLSONLY(DGPTF) ;no secondary diagnoses
  1. N IENS,ROOT,MROOT,FIELDS,I,VAL
  1. S IENS=$G(DGPTF)_","
  1. S FIELDS="79.16;79.17;79.18;79.19;79.201;79.21;79.22;79.23;79.24;79.241;79.242;79.243;79.244;79.245;79.246;79.247;79.248;79.249;79.2491;79.24911;79.24912;79.24913;79.24914;79.24915"
  1. D GETS^DIQ(45,IENS,FIELDS,"I","ROOT","MROOT")
  1. S VAL=1 ;defaault to yes
  1. F I=1:1:$L(FIELDS,";") D
  1. .I $G(ROOT(45,IENS,$P(FIELDS,";",I),"I"))'="" S VAL=0
  1. Q VAL
  1. ;
  1. TDIS(DGPTF) ;type of disposition
  1. N IENS
  1. S IENS=DGPTF_","
  1. Q $$GET1^DIQ(45,IENS,72,"I")
  1. ;
  1. JUSTIFY(DGX,DGWIDTH,DGPAD,DGDIR,DGTRUNC) ;justify within a field
  1. ;DGX - the value to be justified
  1. ;DGWIDTH - width of the field
  1. ;DGPAD - pad character (defaults to space)
  1. ;DGDIR - direction of justification ("L" or "R", defaults to "L")
  1. ;DGTRUNC - should the value be truncated if it is larger than DGWIDTH Default is 1 (yes).
  1. N PAD,I,N
  1. S DGX=$G(DGX),DGDIR=$G(DGDIR,"L"),DGPAD=$G(DGPAD," ")
  1. S DGPAD=$E(DGPAD,1),DGTRUNC=$G(DGTRUNC,1)
  1. S PAD="",VAL=$G(DGX)
  1. I $L(DGX)<DGWIDTH D
  1. .S N=DGWIDTH-$L(DGX)
  1. .F I=1:1:N S PAD=PAD_DGPAD
  1. .S VAL=$S(DGDIR="L":DGX_PAD,1:PAD_DGX)
  1. I ($L(DGX)'<DGWIDTH)&DGTRUNC S VAL=$E(VAL,1,DGWIDTH)
  1. Q VAL
  1. ;
  1. SPEC2PTF(DGSPEC) ;return bed/ward (PTF code) for specialty
  1. N Y,ARRY,X
  1. S Y=$$TSDATA^DGACT(42.4,DGSPEC,.ARRY)
  1. S X=$S(Y'>0:"",1:$G(ARRY(7)))
  1. S X=$$JUSTIFY(X,2,"0","R")
  1. Q X
  1. ;
  1. FMTMPCR(DGX) ;format MPCR code
  1. Q $E($P(DGX,".")_"0000",1,4)_$E($P(DGX,".",2)_"00",1,2)
  1. ;
  1. CDATA(PTF,SEG) ;control data (all segments)
  1. N NODE ;return value
  1. N IENS,IENS2
  1. N DFN,SSN,PSR,FAC,SUF,ADATE,ATIME
  1. S IENS=PTF_","
  1. S DFN=$$GET1^DIQ(45,IENS,.01,"I"),IENS2=DFN_","
  1. S SSN=$$GET1^DIQ(2,IENS2,.09,"I")
  1. S PSR=$$GET1^DIQ(2,IENS2,.0906,"I") ;pseudo-SSN reason
  1. S NODE=$G(SEG) ;transaction type
  1. S $E(NODE,6,14)=SSN
  1. S $E(NODE,5)=$S($L(PSR)>0:"P",1:" ")
  1. S ADATE=$$GET1^DIQ(45,IENS,2,"I") ;admission date
  1. S $E(NODE,15,20)=$$FDATE^DGPTRNU($P(ADATE,".")) ;format as MMDDYY
  1. S ATIME=$$TIME^DGPTRNU(ADATE) ;admission time (HHMM)
  1. S:ATIME'?4N ATIME="0000"
  1. S $E(NODE,21,24)=ATIME
  1. S FAC=$$GET1^DIQ(45,IENS,3,"I") ;facility number
  1. S $E(NODE,25,27)=FAC ;discharge facility
  1. S SUF=$$GET1^DIQ(45,IENS,5,"I") ;suffix
  1. S $E(NODE,28,30)=$E(SUF_" ",1,3) ;suffix (or blank)
  1. Q NODE