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

APCDALVR.m

Go to the documentation of this file.
  1. APCDALVR ; IHS/CMI/LAB - V FILE CREATION ;
  1. ;;2.0;IHS PCC SUITE;**8,10**;MAY 14, 2009;Build 88
  1. ; Add entries to VISIT related files.
  1. ;
  1. ; Upon exit if APCDAFLG exists it means:
  1. ; Value=1 Invalid TEMPLATE specification
  1. ; Value=2 VISIT DFN incorrect or ^DIE rejected data
  1. ;
  1. EN ;PEP - called to create PCC V File entries
  1. K APCDALVR("APCDAFLG"),APCDDUZO
  1. NEW (U,DT,IO,DTIME,DUZ,APCDALVR,ZTQUEUED,BLRLINK,ADGPMADT,XQORS) ;5/12/05 IHS/CMI/LAB added XQORS per Christy Smith, Daou
  1. ;Exception granted by SACC for unargumented NEW command
  1. I DUZ(0)'["M"&(DUZ(0)'="@") S APCDDUZO=DUZ(0),DUZ(0)=DUZ(0)_"M"
  1. S APCDX="" F APCDL=0:0 S APCDX=$O(APCDALVR(APCDX)) Q:APCDX="" S @APCDX=APCDALVR(APCDX)
  1. K APCDAFLG
  1. S APCDADFN="",APCDAVF=""
  1. S:'$D(APCDAFLE) APCDAFLE=9000010
  1. I '$D(APCDVSIT) S APCDAFLG=2 G XIT
  1. I APCDVSIT'?1N.N S APCDAFLG=2 G XIT
  1. I '$D(^AUPNVSIT(APCDVSIT,0)) S APCDAFLG=2 G XIT
  1. ;I $P(^AUPNVSIT(APCDVSIT,0),U,11) S APCDAFLG=2 G XIT ;deleted visit is invalid
  1. I $P(^AUPNVSIT(APCDVSIT,0),U,11) S $P(^AUPNVSIT(APCDVSIT,0),U,11)="",DA=APCDVSIT,DIK="^AUPNVSIT(" D IX1^DIK K DA,D0,DO,DIK,DIC,DICR,DIU,DIV,DG ;reindex if visit is deleted, shouldn't happen, but does
  1. I $E(APCDATMP)'="["!($E(APCDATMP,$L(APCDATMP))'="]") S APCDAFLG=1 G XIT
  1. I '$D(^DIE("B",$P($E(APCDATMP,2,99),"]"))) S APCDAFLG=1 G XIT
  1. S:'$D(APCDPAT) APCDPAT=$P(^AUPNVSIT(APCDVSIT,0),U,5)
  1. S:$E(APCDPAT)="`" APCDPAT=$E(APCDPAT,2,99)
  1. S Y=APCDPAT D ^AUPNPAT
  1. S DIE=^DIC(APCDAFLE,0,"GL"),(DA,D0)=APCDVSIT,DR=APCDATMP
  1. S APCDOVRR=1 D ^DIE
  1. S:$D(Y)!((APCDADFN="")&(APCDATMP["(ADD)")) APCDAFLG=2
  1. I $D(APCDAFLG),APCDADFN,APCDAVF,APCDATMP["(ADD)" S DIK=^DIC(APCDAVF,0,"GL"),(DA,D0)=APCDADFN,APCDADFN="" D ^DIK K DIK,DR
  1. XIT ; KILL VARIABLES AND QUIT
  1. ;I $D(APCDAFLG) S %AIHSERR="APCDALVR",$ZE="" D ^%ET
  1. I $D(APCDVFE) D VL
  1. I $D(APCDDUZO) S DUZ(0)=APCDDUZO K APCDDUZO
  1. ;I '$D(APCDAFLG) S AUPNVSIT=APCDVSIT D MOD^AUPNVSIT ;IHS/CMI/LAB - see below **5**
  1. I '$D(APCDAFLG) S AUPNVSIT=APCDVSIT D MOD^AUPNVSIT,MODVF,SNOMED,LOINC D
  1. .Q:APCDATMP'[9000010.09
  1. .Q:$T(EN^BLSLX)=""
  1. .I APCDATMP["ADD",$G(APCDADFN) D EN^BLSLX(APCDADFN)
  1. .I APCDATMP["MOD",$G(APCDLOOK) D EN^BLSLX(APCDLOOK)
  1. .Q
  1. K Y
  1. S APCDALVR("APCDADFN")=APCDADFN,APCDALVR("APCDAVF")=APCDAVF S:$D(APCDAFLG) APCDALVR("APCDAFLG")=APCDAFLG
  1. K APCDAFLE,APCDATMP,APCDAVF,APCDDUZO
  1. Q
  1. SNOMED ;
  1. S APCDVF=$P(APCDATMP,"APCDALVR ",2),APCDVF=$P(APCDVF," ",1)
  1. I APCDVF<9000010.01 Q
  1. I APCDVF>9000010.99 Q
  1. S APCDG=$G(^DIC(APCDVF,0,"GL"))
  1. I $G(APCDTSND)]"" D
  1. .;delete out these snomeds from 2601 field
  1. .F APCDP=1:1 S APCDV=$P(APCDTSND,U,APCDP) Q:APCDV="" D
  1. ..S APCDVIGR=APCDG_APCDADFN_",26,"_"""B"",APCDV,0)"
  1. ..S DA=$O(@APCDVIGR)
  1. ..Q:'DA ;didn't find it
  1. ..S DA(1)=APCDADFN
  1. ..S DIK=APCDG_APCDADFN_",26,"
  1. ..D ^DIK K DA,DIK
  1. I $G(APCDTSNO)]"" D
  1. .F APCDP=1:1 S APCDV=$P(APCDTSNO,U,APCDP) Q:APCDV="" D
  1. ..S DA(1)=APCDADFN
  1. ..S X=APCDV
  1. ..S DIC=APCDG_DA(1)_",26," ;the root of the subfile for that entry
  1. ..S DIC(0)="L" ;LAYGO to the subfile is allowed
  1. ..S DIC("P")=$P(^DD(APCDVF,2601,0),"^",2) ;returns the subfile# and specifiers
  1. ..D ^DIC K DA,DIC
  1. Q
  1. ;
  1. LOINC ;
  1. S APCDVF=$P(APCDATMP,"APCDALVR ",2),APCDVF=$P(APCDVF," ",1)
  1. I APCDVF<9000010.01 Q
  1. I APCDVF>9000010.99 Q
  1. S APCDG=$G(^DIC(APCDVF,0,"GL"))
  1. I $G(APCDTLDE)]"" D
  1. .;delete out these snomeds from 2601 field
  1. .F APCDP=1:1 S APCDV=$P(APCDTLDE,U,APCDP) Q:APCDV="" D
  1. ..S APCDVIGR=APCDG_APCDADFN_",27,"_"""B"",APCDV,0)"
  1. ..S DA=$O(@APCDVIGR)
  1. ..Q:'DA ;didn't find it
  1. ..S DA(1)=APCDADFN
  1. ..S DIK=APCDG_APCDADFN_",27,"
  1. ..D ^DIK K DA,DIK
  1. I $G(APCDTLOI)]"" D
  1. .F APCDP=1:1 S APCDV=$P(APCDTLOI,U,APCDP) Q:APCDV="" D
  1. ..S DA(1)=APCDADFN
  1. ..S X=APCDV
  1. ..S DIC=APCDG_DA(1)_",27," ;the root of the subfile for that entry
  1. ..S DIC(0)="L" ;LAYGO to the subfile is allowed
  1. ..S DIC("P")=$P(^DD(APCDVF,2701,0),"^",2) ;returns the subfile# and specifiers
  1. ..D ^DIC K DA,DIC
  1. Q
  1. MODVF ;
  1. NEW APCDVF,DIE,DR,DA
  1. S APCDVF=$P(APCDATMP,"APCDALVR ",2),APCDVF=$P(APCDVF," ",1)
  1. I APCDVF<9000010.01 Q
  1. I APCDVF>9000010.99 Q
  1. Q:'APCDADFN
  1. I APCDATMP["ADD" S DIE=APCDVF,DR="1216////"_$$NOW^XLFDT,DA=APCDADFN D ^DIE
  1. I APCDATMP["MOD" S DIE=APCDVF,DR="1218////"_$$NOW^XLFDT,DA=APCDADFN D ^DIE
  1. Q
  1. VL ;EP - create v line item entries if appropriate
  1. ;not yet ready
  1. Q
  1. S APCDFILE=$P($P(APCDALVR("APCDATMP")," ",2)," ")
  1. S APCDMODE=$E($P(APCDALVR("APCDATMP")," ",3))
  1. D @$P(APCDFILE,".",2)
  1. Q
  1. ;
  1. DEL(DIK,DA) ;PEP - DELETE ONE V FILE ENTRY
  1. ;
  1. ; Meaning of returned values are:
  1. ; 0 = v file entry deleted
  1. ; 1 = data global invalid
  1. ; 2 = no 0th node for data global
  1. ; 3 = specified file is not a v file
  1. ; 4 = specified entry is not in specified v file
  1. ;
  1. NEW (DA,DIK,DT,DTIME,DUZ,U)
  1. ;Exception granted by SACC for exclusive NEW command
  1. ;
  1. S:DIK DIK=$G(^DIC(DIK,0,"GL")) ; get data gbl if file #
  1. I DIK'?1"^".E1"(".E Q 1 ; data gbl invalid
  1. S X=$E(DIK,$L(DIK)) ; get last chr of gbl
  1. I X'="(",X'="," Q 1 ; data gbl invalid
  1. I '$D(@(DIK_"0)")) Q 2 ; no 0th node for data gbl
  1. S X=+$P(@(DIK_"0)"),U,2) ; get file #
  1. I $P(X,".")'=9000010 Q 3 ; not a v file
  1. I X=9000010 Q 3 ; not a v file
  1. I '$D(@(DIK_DA_",0)")) Q 4 ; entry not in v file
  1. D ^DIK ; delete v file entry
  1. Q 0
  1. ;
  1. LABC(LVIEN,LCOM) ;-- stuff v lab comments
  1. I '$D(^AUPNVLAB(LVIEN,0)) S APCDALVR("APCDAFLG")="1^No V Lab Entry"
  1. I '$O(LCOM("")) S APCDALVR("APCDAFLG")="1^No Comments Passed In"
  1. S APCDCDA=0 F S APCDCDA=$O(LCOM(APCDCDA)) Q:'APCDCDA D
  1. . S APCDLCOM=$G(LCOM(APCDCDA))
  1. . K DD,DO
  1. . S DIC="^AUPNVLAB("_LVIEN_",21,",DIC(0)="L",DA(1)=LVIEN
  1. . S DIC("P")=$P(^DD(9000010.09,2100,0),U,2),X=APCDLCOM
  1. . D FILE^DICN
  1. . I +Y<0 S APCDALVR("APCDAFLG")="1^Error Adding Entry to V Lab"
  1. I $G(APCDALVR("APCDAFLG")) Q APCDALVR("APCDAFLG")
  1. Q ""
  1. ;