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

BJPNVFIL.m

Go to the documentation of this file.
  1. BJPNVFIL ;GDIT/HS/BEE-Prenatal Care Module V OB Handling ; 08 May 2012 12:00 PM
  1. ;;2.0;PRENATAL CARE MODULE;;Feb 24, 2015;Build 63
  1. ;
  1. Q
  1. ;
  1. VFILE(PLIEN,VFILE) ;EP - Log V OB Entry
  1. ;
  1. ;Input Parameters:
  1. ; PLIEN - Pointer to #90680.01
  1. ; VFILE("DFN") - Pointer to #9000001
  1. ; VFILE("VIEN") - Pointer to #9000010
  1. ; VFILE("POV") - Used as POV (Y)
  1. ; VFILE("PRIORITY") - Priority (L/M/H)
  1. ; VFILE("PTEXT") - Pointer to #9999999.27
  1. ; VFILE("SCOPE") - Scope (A/C)
  1. ; VFILE("STATUS") - Status (A/I)
  1. ; VFILE("DEDD") - Definitive EDD
  1. ; VFILE("NOTE") - Single Note
  1. ; VFILE("TNOTE") - Technical Note Header
  1. ; VFILE("TNOTE",fien) - Technical Notes - fields changed
  1. ; VFILE("OEDT") - Original Entry Date
  1. ; VFILE("OEBY") - Original Entry By
  1. ; VFILE("LMDT") - Last Modified Date
  1. ; VFILE("LMBY") - Last Modified By
  1. ; VFILE("DEBY") - Deleted By
  1. ; VFILE("DEDT") - Deleted Dt
  1. ; VFILE("DECD") - Deleted Code
  1. ; VFILE("DERN") - Deleted Reason
  1. ;
  1. NEW DFN,DIC,DLAYGO,X,Y,PPROV,BJPNLM,BJPNUPD,ERROR,EVDT,OEDATA,PNARR
  1. NEW DIK,DA,VPIEN,VNIEN,VIEN,SNPTR
  1. ;
  1. S DIC="^AUPNVOB("
  1. S DLAYGO=9000010.43,DIC("P")=DLAYGO,DIC(0)="LOX"
  1. S X=PLIEN
  1. K DO,DD D FILE^DICN
  1. S VPIEN=+Y
  1. S VIEN=$G(VFILE("VIEN"))
  1. ;
  1. ;Pull DFN
  1. S DFN=$G(VFILE("DFN"))
  1. ;
  1. ;Pull OE Into
  1. S OEDATA=$$OEDATA(DFN,PLIEN)
  1. I $G(VFILE("OEDT"))="" D
  1. . S VFILE("OEDT")=$P(OEDATA,U)
  1. . S VFILE("OEBY")=$P(OEDATA,U,2)
  1. ;
  1. ;.02 PATIENT NAME
  1. S BJPNUPD(9000010.43,VPIEN_",",".02")=VFILE("DFN")
  1. ;
  1. ;.03 VISIT
  1. S BJPNUPD(9000010.43,VPIEN_",",".03")=VFILE("VIEN")
  1. ;
  1. ;.05 USED AS POV
  1. I $G(VFILE("POV"))]"" S BJPNUPD(9000010.43,VPIEN_",",".05")=VFILE("POV")
  1. ;
  1. ;.06 PRIORITY
  1. I $G(VFILE("PRIORITY"))]"" S BJPNUPD(9000010.43,VPIEN_",",".06")=VFILE("PRIORITY")
  1. ;
  1. ;.07 PROVIDER TEXT
  1. I $G(VFILE("PTEXT"))]"" S BJPNUPD(9000010.43,VPIEN_",",".07")=VFILE("PTEXT")
  1. ;
  1. ;.08 SCOPE
  1. I $G(VFILE("SCOPE"))]"" S BJPNUPD(9000010.43,VPIEN_",",".08")=VFILE("SCOPE")
  1. ;
  1. ;.09 STATUS
  1. I $G(VFILE("STATUS"))]"" S BJPNUPD(9000010.43,VPIEN_",",".09")=VFILE("STATUS")
  1. ;
  1. ;.1 DEFINITIVE EDD
  1. I $G(VFILE("DEDD"))]"" S BJPNUPD(9000010.43,VPIEN_",",".1")=VFILE("DEDD")
  1. ;
  1. ;.11 PROVIDER NARRATIVE
  1. S PNARR="" D
  1. . NEW PTEXT,DIC,DLAYGO,X,Y
  1. . S PTEXT="" I $G(VFILE("PTEXT"))]"" S PTEXT=$$GET1^DIQ(9999999.27,VFILE("PTEXT")_",",.01,"E")
  1. . S PNARR=$$GET1^DIQ(90680.01,PLIEN_",",.03,"I")
  1. . S PNARR=$$GET1^DIQ(90680.02,PNARR_",",.02,"E")
  1. . S PNARR=PNARR_"| "_PTEXT
  1. . S DIC(0)="LX",DIC="^AUTNPOV(",DLAYGO=9999999.27,X=PNARR
  1. . D ^DIC
  1. . S PNARR=+Y
  1. ;S DIC("DR")=DIC("DR")_";.11////"_PNARR
  1. S BJPNUPD(9000010.43,VPIEN_",",".11")=PNARR
  1. ;
  1. ;.12 SNOMED TERM
  1. S SNPTR=$$GET1^DIQ(90680.01,PLIEN_",",.03,"I")
  1. S BJPNUPD(9000010.43,VPIEN_",",".12")=SNPTR
  1. ;
  1. ;1201 EVENT DATE AND TIME
  1. S EVDT=$$GET1^DIQ(9000010,VFILE("VIEN")_",",.01,"I")
  1. I EVDT]"" S BJPNUPD(9000010.43,VPIEN_",","1201")=EVDT
  1. ;
  1. ;Ordering Provider
  1. ;S PPROV=$$PPRV^BJPNPKL(VIEN)
  1. ;I PPROV]"" S BJPNUPD(9000010.43,VPIEN_",","1202")=PPROV
  1. ;
  1. ;1204 ENCOUNTER PROVIDER
  1. S BJPNUPD(9000010.43,VPIEN_",","1204")=DUZ ;Set to current user
  1. ;
  1. ;1216 DATE/TIME ENTERED
  1. I $G(VFILE("OEDT"))]"" S BJPNUPD(9000010.43,VPIEN_",","1216")=VFILE("OEDT")
  1. ;
  1. ;1217 ENTERED BY
  1. I $G(VFILE("OEBY"))]"" S BJPNUPD(9000010.43,VPIEN_",","1217")=VFILE("OEBY")
  1. ;
  1. ;2.01 PROBLEM DELETED BY
  1. I $G(VFILE("DEBY"))]"" S BJPNUPD(9000010.43,VPIEN_",",2.01)=VFILE("DEBY")
  1. ;
  1. ;2.02 DATE/TIME PROBLEM DELETED
  1. I $G(VFILE("DEDT"))]"" S BJPNUPD(9000010.43,VPIEN_",",2.02)=VFILE("DEDT")
  1. ;
  1. ;2.03 REASON PROBLEM DELETED
  1. I $G(VFILE("DECD"))]"" S BJPNUPD(9000010.43,VPIEN_",",2.03)=VFILE("DECD")
  1. ;
  1. ;2.04 DELETE REASON IF OTHER
  1. I $G(VFILE("DERN"))]"" S BJPNUPD(9000010.43,VPIEN_",",2.04)=VFILE("DERN")
  1. ;
  1. I $D(BJPNUPD) D FILE^DIE("","BJPNUPD","ERROR")
  1. I $D(ERROR) Q "-1^^V OB FILE SAVE FAILED"
  1. ;
  1. ;File last modified dt/by separately - Avoid duplicate index issue
  1. ;
  1. ;1218 DATE/TIME LAST MODIFIED
  1. I $G(VFILE("LMDT"))]"" S BJPNLM(9000010.43,VPIEN_",","1218")=VFILE("LMDT")
  1. ;
  1. ;1219 LAST MODIFIED BY
  1. I $G(VFILE("LMDY"))]"" S BJPNLM(9000010.43,VPIEN_",","1219")=VFILE("LMBY")
  1. ;
  1. I $D(BJPNLM) D FILE^DIE("","BJPNLM","ERROR")
  1. I $D(ERROR) Q "-1^^V OB FILE SAVE FAILED"
  1. ;
  1. ;File Note
  1. I $G(VFILE("NOTE"))]"" S VNIEN=$$ANOTE^BJPNPRUT(VPIEN,VFILE("NOTE")) D I VNIEN=-1 Q "-1^^V OB NOTE SAVE FAILED"
  1. . Q:VNIEN=-1
  1. . I $G(VNIEN)]"" S VFILE("TNOTE",2100)=VNIEN
  1. ;
  1. ;2200 TECHNICAL COMMENT
  1. I $D(VFILE("TNOTE")) D TNOTE(VPIEN,.VFILE)
  1. ;
  1. ;Reindex this entry
  1. S DIK="^AUPNVOB(",DA=VPIEN D IX^DIK
  1. ;
  1. Q VPIEN
  1. ;
  1. TNOTE(VPIEN,VFL) ;EP - File TNOTES
  1. ;
  1. I $G(VPIEN)="" Q
  1. ;
  1. NEW HDR,FLD
  1. ;
  1. ;Look for header first
  1. S HDR=$G(VFL("TNOTE")) I HDR]"" D
  1. . NEW DA,DIC,DLAYGO,X,Y
  1. . S DIC="^AUPNVOB("_VPIEN_",22,",DA(1)=VPIEN
  1. . S DLAYGO=9000010.4311,DIC("P")=DLAYGO,DIC(0)="LOX"
  1. . S X="C"
  1. . S DIC("DR")=".02////"_HDR
  1. . K DO,DD D FILE^DICN
  1. ;
  1. ;Save other modified entries
  1. S FLD="" F S FLD=$O(VFL("TNOTE",FLD)) Q:FLD="" D
  1. . I (FLD="1.01")!(FLD="1.02")!(FLD="1.03")!(FLD="1.4") Q
  1. . NEW DA,DIC,DLAYGO,X,Y
  1. . S DIC="^AUPNVOB("_VPIEN_",22,",DA(1)=VPIEN
  1. . S DLAYGO=9000010.4311,DIC("P")=DLAYGO,DIC(0)="LOX"
  1. . S X="F"
  1. . S DIC("DR")=".02////"_FLD_$S(FLD=2100:":"_VFL("TNOTE",FLD),1:"")
  1. . K DO,DD D FILE^DICN
  1. ;
  1. ;Save last modified fields
  1. F FLD=1.01,1.02,1.03,1.04 I $D(VFL("TNOTE",FLD)) D
  1. . NEW DA,DIC,DLAYGO,X,Y
  1. . S DIC="^AUPNVOB("_VPIEN_",22,",DA(1)=VPIEN
  1. . S DLAYGO=9000010.4311,DIC("P")=DLAYGO,DIC(0)="LOX"
  1. . S X="F"
  1. . S DIC("DR")=".02////"_FLD
  1. . K DO,DD D FILE^DICN
  1. ;
  1. Q
  1. ;
  1. OEDATA(DFN,PLIEN) ;EP - Retrieve Original Entry information for problem
  1. ;
  1. I $G(DFN)="" Q ""
  1. I $G(PLIEN)="" Q ""
  1. ;
  1. NEW VN,VFIEN,OEDT,OEBY
  1. S (OEDT,OEBY,VN)="" F S VN=$O(^AUPNVOB("AA",DFN,PLIEN,VN)) Q:VN="" D
  1. . S VFIEN="" F S VFIEN=$O(^AUPNVOB("AA",DFN,PLIEN,VN,VFIEN)) Q:VFIEN="" D
  1. .. NEW CRDT
  1. .. S CRDT=$$GET1^DIQ(9000010.43,VFIEN_",",1216,"I") Q:CRDT=""
  1. .. I OEDT]"",CRDT>OEDT Q
  1. .. S OEDT=CRDT
  1. .. S OEBY=$$GET1^DIQ(9000010.43,VFIEN_",",1217,"I")
  1. ;
  1. Q OEDT_U_OEBY
  1. ;
  1. VFADD(APCDPIP,APCDVSIT) ;EP - Add placeholder entry to V OB file
  1. ;
  1. ;This function adds a basic entry into the V OB file which is then updated
  1. ;by the [APCDALVR 9000010.43 (ADD)] Template
  1. ;
  1. NEW DFN,DIC,DLAYGO,X,Y
  1. ;
  1. I $G(APCDPIP)="" Q ""
  1. I $G(APCDVSIT)="" Q ""
  1. ;
  1. S DIC="^AUPNVOB(",DLAYGO=9000010.43,DIC("P")=DLAYGO,DIC(0)="LOX"
  1. S X=$G(APCDPIP)
  1. S DFN=$$GET1^DIQ(9000010,APCDVSIT_",",".05","I")
  1. S DIC("DR")=".02////"_DFN_";.03////"_APCDVSIT
  1. K DO,DD D FILE^DICN
  1. S Y=$S(+Y>0:+Y,1:"")
  1. Q Y
  1. ;
  1. PNARR(NARR) ;EP - Save new PROVIDER NARRATIVE (#9999999.27) entry
  1. ;
  1. I $G(NARR)="" Q ""
  1. ;
  1. NEW DIC,DLAYGO,X,Y
  1. ;
  1. S DIC(0)="LX",DIC="^AUTNPOV(",DLAYGO=9999999.27,X=NARR
  1. D ^DIC
  1. Q $S(+Y<0:"",1:+Y)