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

VPSMRAR2.m

Go to the documentation of this file.
  1. VPSMRAR2 ;DALOI/KML,WOIFO/BT - Cont. Update of VPS MRAR PDO file ;1/15/15 15:30
  1. ;;1.0;VA POINT OF SERVICE (KIOSKS);**3**;Jan 15, 2015;Build 64
  1. ;;Per VHA Directive 2004-038, this routine should not be modified.
  1. ;
  1. Q
  1. ;
  1. SUB52(PTIEN,DTIEN,FLD,DIEFLAG,DATA,REQFLDS) ; file the ALLERGY multiple (853.52)
  1. ; INPUTS
  1. ; PTIEN : D0 - Patient DFN for 853.5 entry1
  1. ; DTIEN : D1 - transaction date/time ien for 853.51 sub-entry
  1. ; FLD : Field # where the data will be filed
  1. ; DIEFLAG : Filing Type (I = Internal, E = External)
  1. ; DATA : Field Name^IENS^Field Value
  1. ; REQFLDS : Array of required fields by fieldname and entry number
  1. ;
  1. ; OUTPUT
  1. ; success : RESULT = Field Name^IENS^Field Value^1
  1. ; failed : RESULT = Field Name^IENS^Field Value^99^error text describing why data did not get filed
  1. ;
  1. N RESULT S RESULT=""
  1. ;
  1. ; -- Check required Allergy fields
  1. S RESULT=$$CHKALR(.REQFLDS,DATA)
  1. Q:RESULT'="" RESULT
  1. ;
  1. ; -- Add Allergy sub entry if it doesn't exist
  1. ;N ALLERID S ALLERID=$P(DATA,U,3) ;Allergy Entry #
  1. N ALLERID S ALLERID=$P($P(DATA,U,2),",",2) ;Allergy Entry #
  1. I '$D(^VPS(853.5,PTIEN,"MRAR",DTIEN,"ALLERGY","B",ALLERID)) D
  1. . N ADDOK S ADDOK=$$ADDMRAR^VPSMRAR0(853.52,DTIEN_","_PTIEN,ALLERID,DIEFLAG)
  1. . I 'ADDOK S RESULT=$$RESULT^VPSMRAR0(DATA,99,"Data was not filed into MRAR PDO. Failed to add Allergy entry")
  1. Q:RESULT'="" RESULT
  1. ;
  1. ; -- Get Allergy IEN
  1. N ALLERIEN S ALLERIEN=$O(^VPS(853.5,PTIEN,"MRAR",DTIEN,"ALLERGY","B",ALLERID,""))
  1. I ALLERIEN="" S RESULT=$$RESULT^VPSMRAR0(DATA,99,"Data was not filed into MRAR PDO")
  1. Q:RESULT'="" RESULT
  1. I FLD=.02,$$GET1^DIQ(120.8,$P(DATA,U,3)_",",.01,"I")'=PTIEN S RESULT=$$RESULT^VPSMRAR0(DATA,99,"DFN does not match DFN associated with PATIENT ALLERGIES")
  1. Q:RESULT'="" RESULT
  1. ;
  1. ; -- Store 853.52 field entries
  1. N WP S WP=FLD="1"!(FLD=2)!(FLD=3)
  1. N IENS S IENS=ALLERIEN_","_DTIEN_","_PTIEN_","
  1. S RESULT=$$FILE^VPSMRAR0(853.52,WP,IENS,FLD,DIEFLAG,DATA)
  1. ;
  1. Q RESULT
  1. ;
  1. SUB52X(SUBFIL,SUBS,PTIEN,DTIEN,DATA,REQFLDS,DIEFLAG) ; file the ALLERGY CHANGED INDICATORS (853.525)
  1. ; INPUTS
  1. ; SUBFIL : Sub File# : 853.525, 853.526, or 853.527
  1. ; SUBS : Subscript associated with the Sub File : ACHG, ACNFR, ADISCR
  1. ; PTIEN : D0 - Patient DFN for 853.5 entry1
  1. ; DTIEN : D1 - transaction date/time ien for 853.51 sub-entry
  1. ; DATA : Field Name^IENS^Field Value
  1. ; REQFLDS : Array of required fields by fieldname and entry number
  1. ; DIEFLAG : Filing Type (I = Internal, E = External)
  1. ;
  1. ; OUTPUT
  1. ; success : RESULT = Field Name^IENS^Field Value^1
  1. ; failed : RESULT = Field Name^IENS^Field Value^99^error text describing why data did not get filed
  1. ;
  1. N RESULT S RESULT=""
  1. ;
  1. ; -- Check required Allergy fields
  1. S RESULT=$$CHKALC(.REQFLDS,DATA)
  1. Q:RESULT'="" RESULT
  1. ;
  1. ; -- Add Allergy changed/confirmed/discrepancy sub entry if it doesn't exist
  1. N ALLERID S ALLERID=$P($P(DATA,U,2),",",2)
  1. N AIEN S AIEN=$O(^VPS(853.5,PTIEN,"MRAR",DTIEN,"ALLERGY","B",ALLERID,0))
  1. I 'AIEN S RESULT=$$RESULT^VPSMRAR0(DATA,99,"Corrupted Allergy entry")
  1. Q:RESULT'="" RESULT
  1. ;
  1. N ALLCHGID S ALLCHGID=$P($P(DATA,U,2),",",3)
  1. ;I $P(DATA,U,3)'=ALLCHGID S RESULT=$$RESULT^VPSMRAR0(DATA,99,"Value does not match third index")
  1. ;Q:RESULT'="" RESULT
  1. N EXIST S EXIST=$D(^VPS(853.5,PTIEN,"MRAR",DTIEN,"ALLERGY",AIEN,SUBS,"B",ALLCHGID))
  1. I EXIST S RESULT=$$RESULT^VPSMRAR0(DATA,99,"Duplicate Allergy Changed/Confirmed/Discrepancy entry")
  1. Q:RESULT'="" RESULT
  1. ;
  1. N OK S OK=$$ADDMRAR^VPSMRAR0(SUBFIL,AIEN_","_DTIEN_","_PTIEN,ALLCHGID)
  1. I 'OK S RESULT=$$RESULT^VPSMRAR0(DATA,99,"Unable to file Allergy Changed/Confirmed/Discrepancy entry")
  1. I OK S RESULT=$$RESULT^VPSMRAR0(DATA,1,"") ; data for specific field was filed successfully into PDO record
  1. ;
  1. Q RESULT
  1. ;
  1. CHKALR(REQFLDS,DATA) ;Check required Allergy fields
  1. ; INPUTS
  1. ; REQFLDS : Array of required fields by fieldname and entry number
  1. ; DATA : Field Name^IENS^Field Value
  1. ;
  1. ; OUTPUT
  1. ; success : RESULT = Field Name^IENS^Field Value^1
  1. ; failed : RESULT = Field Name^IENS^Field Value^99^error text describing why data did not get filed
  1. ;
  1. N RESULT S RESULT=""
  1. ; -- Allergy Entry # is required field
  1. N ALLERID S ALLERID=$P($P(DATA,U,2),",",2)
  1. I 'ALLERID S RESULT=$$RESULT^VPSMRAR0(DATA,99,"Allergy Entry # is required")
  1. Q:RESULT'="" RESULT
  1. ;
  1. ; -- For Local VistA, Local Allergy ID is required
  1. ; -- For Remote (CDW), Remote Allergy ID and Remote Allergy Name are required
  1. N ISLOCAL S ISLOCAL=$D(REQFLDS("LOCAL ALLERGY ID",ALLERID))
  1. N ISREMOTE S ISREMOTE=$D(REQFLDS("REMOTE ALLERGY ID",ALLERID))&$D(REQFLDS("REMOTE ALLERGY NAME",ALLERID))
  1. I 'ISLOCAL&'ISREMOTE S RESULT=$$RESULT^VPSMRAR0(DATA,99,"Local Allergy ID or Remote Allergy ID and Remote Allergy Name are required")
  1. Q RESULT
  1. ;
  1. CHKALC(REQFLDS,DATA) ;Check required Allergy Changed/confirmed/discrepancy fields
  1. ; INPUTS
  1. ; REQFLDS : Array of required fields by fieldname and entry number
  1. ; DATA : Field Name^IENS^Field Value
  1. ;
  1. ; OUTPUT
  1. ; success : RESULT = Field Name^IENS^Field Value^1
  1. ; failed : RESULT = Field Name^IENS^Field Value^99^error text describing why data did not get filed
  1. ;
  1. N RESULT S RESULT=""
  1. ; -- Allergy Entry # is required field
  1. N ALLERID S ALLERID=$P($P(DATA,U,2),",",2)
  1. I 'ALLERID S RESULT=$$RESULT^VPSMRAR0(DATA,99,"Allergy Entry # is required")
  1. Q:RESULT'="" RESULT
  1. ;
  1. N ALLCHGID S ALLCHGID=$P($P(DATA,U,2),",",3)
  1. I 'ALLCHGID S RESULT=$$RESULT^VPSMRAR0(DATA,99,"Allergy Changed/Confirmed/Discrepancy is required")
  1. Q:RESULT'="" RESULT
  1. ;
  1. I '$D(^VPS(853.3,ALLCHGID)) S RESULT=$$RESULT^VPSMRAR0(DATA,99,"Invalid Allergy Changed/Confirmed/Discrepancy")
  1. Q RESULT