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

BGOVIF.m

Go to the documentation of this file.
  1. BGOVIF ; IHS/BAO/TMD - Manage V INFANT FFEDING ;10-Dec-2013 14:09;DU
  1. ;;1.1;BGO COMPONENTS;**1,3,6,11,13**;Mar 20, 2007;Build 16
  1. ;---------------------------------------------
  1. ; Return entries from V Infant Feeding by V File Entry or by Patient or by Visit
  1. ; INP = Patient IEN [1] ^ V File IEN [2] ^ Visit IEN [3]
  1. GET(RET,INP) ;EP
  1. N I,X,IFDATE
  1. D VFGET^BGOUTL2(.RET,INP,$$FNUM,".03;.01;1201;1204")
  1. ;patch 6 If the 1201 field is empty, replace it with the visit date for display
  1. S I=0 F S I=$O(@RET@(I)) Q:I="" D
  1. .S X=$G(@RET@(I))
  1. .I $P(X,U,5)="" D
  1. ..S IFDATE=$P($P(X,U,3),"|",1)
  1. ..S $P(X,U,5)=IFDATE_"|"_$$CVTDATE^BGOUTL(IFDATE)
  1. ..S @RET@(I)=X
  1. ..S @RET@(I)=X
  1. .S IEN=$P(X,U,1)
  1. .S EXTRA=""
  1. .S EX=0 F S EX=$O(^AUPNVIF(IEN,13,EX)) Q:'+EX D
  1. ..S AIEN=EX_","_IEN
  1. ..S TYP=$$GET1^DIQ(9000010.4413,AIEN,.01)
  1. ..Q:TYP=""
  1. ..S TYPC=$$GET1^DIQ(9000010.4413,AIEN,.01,"I")
  1. ..S COMM=$$GET1^DIQ(9000010.4413,AIEN,.02)
  1. ..S EXTRA=$S(EXTRA="":TYP_"|"_TYPC_"|"_COMM,1:EXTRA_"~"_TYP_"|"_TYPC_"|"_COMM)
  1. ..S $P(X,U,7)=EXTRA
  1. .S @RET@(I)=X
  1. Q
  1. ; Add/Edit infant feeding data
  1. ; INP = V File IEN ^ Visit IEN ^ Feeding Choice ^ EXTRA
  1. SET(RET,INP) ;EP
  1. N VIEN,VFIEN,VFNEW,TYPE,FDA,FNUM,EXTRA,CNT,MUL,AIEN
  1. S RET="",FNUM=$$FNUM
  1. S VFIEN=$P(INP,U)
  1. I +VFIEN D DELEX(VFIEN)
  1. S VFNEW='VFIEN
  1. S VIEN=$P(INP,U,2)
  1. S TYPE=$P(INP,U,3)
  1. S EXTRA=$P(INP,U,4)
  1. I 'TYPE S RET=$$ERR^BGOUTL(1079) Q
  1. S RET=$$CHKVISIT^BGOUTL(VIEN)
  1. Q:RET
  1. I 'VFIEN D Q:'VFIEN
  1. .D VFNEW^BGOUTL2(.RET,FNUM,TYPE,VIEN)
  1. .S:RET>0 VFIEN=RET,RET=""
  1. S FDA=$NA(FDA(FNUM,VFIEN_","))
  1. S @FDA@(.01)=TYPE
  1. S @FDA@(1201)="N"
  1. S @FDA@(1204)="`"_DUZ
  1. ;Patch 11 Set date entered
  1. I VFNEW D
  1. .S @FDA@(1216)="N"
  1. .S @FDA@(1217)="`"_DUZ
  1. ;Patch 11 Set last modified
  1. S @FDA@(1218)="N"
  1. S @FDA@(1219)="`"_DUZ
  1. S RET=$$UPDATE^BGOUTL(.FDA,"E")
  1. I RET,VFNEW,$$DELETE^BGOUTL(FNUM,VFIEN)
  1. D:'RET VFEVT^BGOUTL2(FNUM,VFIEN,'VFNEW)
  1. S:'RET RET=VFIEN
  1. S CNT=$L(EXTRA,"~")
  1. S FNUM=9000010.4413
  1. F I=1:1:CNT D
  1. .S MUL=$P(EXTRA,"~",I)
  1. .S MUL=$S(MUL="MILK":1,MUL="FRUIT JUICE":2,MUL="CARBONATED DRINK":3,MUL="SPORTS DRINK":4,MUL="GLUCOSE":5,MUL="WATER":6,1:MUL)
  1. .S AIEN="+"_I_","_VFIEN_","
  1. .S FDA(FNUM,AIEN,.01)=$P(MUL,":",1)
  1. .S FDA(FNUM,AIEN,.02)=$P(MUL,":",2)
  1. .D UPDATE^DIE(,"FDA","AIEN","ERR")
  1. Q
  1. DELEX(VFIEN) ;Delete existing extras and all SNOMED and LOINC codes
  1. K NUM,DA,DIK
  1. S NUM=0 F S NUM=$O(^AUPNVIF(VFIEN,13,NUM)) Q:NUM="" D
  1. .S DA(1)=VFIEN,DA=NUM
  1. .S DIK="^AUPNVIF(VFIEN,13,"
  1. .D ^DIK
  1. K NUM,DA,DIK
  1. S NUM=0 F S NUM=$O(^AUPNVIF(VFIEN,26,NUM)) Q:NUM="" D
  1. .S DA(1)=VFIEN,DA=NUM
  1. .S DIK="^AUPNVIF(VFIEN,26,"
  1. .D ^DIK
  1. K NUM,DA,DIK
  1. S NUM=0 F S NUM=$O(^AUPNVIF(VFIEN,27,NUM)) Q:NUM="" D
  1. .S DA(1)=VFIEN,DA=NUM
  1. .S DIK="^AUPNVIF(VFIEN,27,"
  1. .D ^DIK
  1. Q
  1. ; Delete a V File entry
  1. DEL(RET,VFIEN) ;
  1. D VFDEL^BGOUTL2(.RET,$$FNUM,VFIEN)
  1. Q
  1. ; Return V File #
  1. FNUM() Q 9000010.44