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

PXRHS08.m

Go to the documentation of this file.
  1. PXRHS08 ;ISL/SBW,PKR - PCE Visit Patient Education data extract ;03/21/2022
  1. ;;1.0;PCE PATIENT CARE ENCOUNTER;**13,16,211,217**;Aug 12, 1996;Build 134
  1. EDUC(DFN,BEGDT,ENDDT,OCCLIM,CATCODE) ; Control branching
  1. ;INPUT : DFN - Pointer to PATIENT file (#2)
  1. ; BEGDT - Beginning date/time in internal FileMan format
  1. ; - Defaults to one year prior to today's date
  1. ; ENDDT - Ending date/time in internal FileMan format
  1. ; - Defaults to today's date at 11:59 pm
  1. ; OCCLIM - Maximum number of days for which data is returned
  1. ; (If multiple visits on a given day, all data for
  1. ; these visit will be returned) or an "R" for
  1. ; only the most recent occurrence of each topic
  1. ; Note: If event date is used, it may appear that too
  1. ; many occurrences are retrieved but it is
  1. ; it is based on visit date not event date.
  1. ; CATCODE - Pattern Match which controls visit data that is
  1. ; returned (Can include multiple codes)
  1. ; A = AMBULATORY
  1. ; H = HOSPITALIZATION
  1. ; I = IN HOSPITAL
  1. ; C = CHART REVIEW
  1. ; T = TELECOMMUNICATIONS
  1. ; N = NOT FOUND
  1. ; S = DAY SURGERY
  1. ; O = OBSERVATION
  1. ; E = EVENT (HISTORICAL)
  1. ; R = NURSING HOME
  1. ; D = DAILY HOSPITALIZATION DATA
  1. ; X = ANCILLARY PACKAGE DAILY DATA
  1. ;
  1. ;OUTPUT :
  1. ; Data from V Patient Education (9000010.16) file
  1. ; ^TMP("PXPE",$J,InvDt,TOPIC,IFN,0) = PRINT NAME or TOPIC [E;.01]
  1. ; ^ EVENT DATE/TIME or VISIT/ADMIT DATE&TIME [I;1201 or .03]
  1. ; ^ LEVEL OF UNDERSTANDING [E;.06] ^ ORDERING PROVIDER [E;1202]
  1. ; ^ ENCOUNTER PROVIDER [E;1204]
  1. ; ^TMP("PXPE",$J,InvDt,TOPIC,IFN,1) = HOSPITAL LOCATION [E;9000010;.22]
  1. ; ^ HOSP. LOC. ABBREVIATION [E;44;1]
  1. ; ^ LOC OF ENCOUNTER [E;9000010;.06] ^ OUTSIDE LOC [E;9000010;2101]
  1. ; ^TMP("PXPE",$J,InvDt,TOPIC,IFN,"S") = DATA SOURCE [E;81203]
  1. ;
  1. ; [] = [I(nternal)/E(xternal); Optional file #; Record #]
  1. ; Subscripts:
  1. ; InvDt - Inverse FileMan date of DATE OF event or visit
  1. ; TOPIC - Patient Education Topic
  1. ; IFN - Internal Record #
  1. ;
  1. Q:$G(DFN)']""!'$D(^PXRMINDX(9000010.16,"PI",DFN))
  1. S:+$G(OCCLIM)'>0 OCCLIM=999
  1. S:+$G(BEGDT)'>0 BEGDT=DT-10000
  1. S:+$G(ENDDT)'>0 ENDDT=DT_".235959"
  1. K ^TMP("PXPE",$J)
  1. N DATE,EDUIEN,VPEDIEN
  1. S EDUIEN=""
  1. F S EDUIEN=$O(^PXRMINDX(9000010.16,"PI",DFN,EDUIEN)) Q:EDUIEN="" D
  1. . S CNT=0,DATE=""
  1. . F S DATE=$O(^PXRMINDX(9000010.16,"PI",DFN,EDUIEN,DATE),-1) Q:(DATE="")!(CNT'<OCCLIM) D
  1. .. S VPEDIEN=0
  1. .. F S VPEDIEN=$O(^PXRMINDX(9000010.16,"PI",DFN,EDUIEN,DATE,VPEDIEN)) Q:(VPEDIEN="")!(CNT'<OCCLIM) D
  1. ... I $$ADDEDU(EDUIEN,VPEDIEN,BEGDT,ENDDT)=1 S CNT=CNT+1
  1. Q
  1. ;
  1. ADDEDU(EDUIEN,VPEDIEN,BEGDT,ENDDT) ;
  1. N COMMENT,DATASRC,EPROV,EVENTDT,HLOC,HLOCABB,IDT,LEVEL,OPROV
  1. N PNAME,TMP0,TMP12,TMP220,TMP811,TMP812,TOPIC,VDATA
  1. S TMP0=$G(^AUPNVPED(VPEDIEN,0))
  1. S TMP12=$G(^AUPNVPED(VPEDIEN,12))
  1. S VDATA=$$GETVDATA^PXRHS03($P(TMP0,U,3))
  1. S EVENTDT=$P(TMP12,U,1)
  1. I EVENTDT="" S EVENTDT=$P(VDATA,U,1)
  1. ;Is it in the date range?
  1. I (EVENTDT<BEGDT)!(EVENTDT>ENDDT) Q 0
  1. ;Only get data with passed serv. cat.
  1. I $G(CATCODE)'[$P(VDATA,U,3) Q 0
  1. S TMP220=$G(^AUPNVPED(VPEDIEN,220))
  1. I TMP220'="" S TMP220=TMP220_U_$P(^AUTTEDT(EDUIEN,220),U,6)
  1. S TMP811=$G(^AUPNVPED(VPEDIEN,811))
  1. S TMP812=$G(^AUPNVPED(VPEDIEN,812))
  1. S TOPIC=$P(^AUTTEDT(EDUIEN,0),U,1)
  1. S PNAME=$P($G(^AUTTEDT(EDUIEN,0)),U,4)
  1. I PNAME="" S PNAME=TOPIC
  1. S LEVEL=$$EXTERNAL^DILFD(9000010.16,.06,"",$P(TMP0,U,6))
  1. S OPROV=$$GET1^DIQ(9000010.16,VPEDIEN_",",1202)
  1. S EPROV=$$GET1^DIQ(9000010.16,VPEDIEN_",",1204)
  1. S HLOC=$P(VDATA,U,5)
  1. S HLOCABB=$P(VDATA,U,6)
  1. S DATASRC=$P(TMP812,U,3)
  1. S COMMENT=TMP811
  1. S IDT=9999999-EVENTDT
  1. S ^TMP("PXPE",$J,IDT,TOPIC,VPEDIEN,0)=PNAME_U_EVENTDT_U_LEVEL_U_OPROV_U_EPROV
  1. S ^TMP("PXPE",$J,IDT,TOPIC,VPEDIEN,1)=HLOC_U_HLOCABB_U_$P(VDATA,U,2)_U_$P(VDATA,U,4)
  1. S ^TMP("PXPE",$J,IDT,TOPIC,VPEDIEN,"COM")=COMMENT
  1. S ^TMP("PXPE",$J,IDT,TOPIC,VPEDIEN,"MEASUREMENT")=TMP220
  1. S ^TMP("PXPE",$J,IDT,TOPIC,VPEDIEN,"S")=DATASRC
  1. Q 1
  1. ;