1 | PXRMPINF ; SLC/PKR - Routines relating to patient information. ;10/07/2004
|
---|
2 | ;;2.0;CLINICAL REMINDERS;;Feb 04, 2005
|
---|
3 | ;
|
---|
4 | ;======================================================
|
---|
5 | DATACHG ;This entry point is called whenever patient data has changed.
|
---|
6 | ;It is attached to the following event points:
|
---|
7 | ;PXK VISIT DATA EVENT
|
---|
8 | ;
|
---|
9 | I '$D(^TMP("PXKCO",$J)) Q
|
---|
10 | N DATA,DFN,DGBL,NODE,PXRMDFN,VIEN,VISIT,VF,VFL,VGBL
|
---|
11 | S DFN=""
|
---|
12 | ;Look for PXK VISIT DATA EVENT data.
|
---|
13 | S VISIT=$O(^TMP("PXKCO",$J,""))
|
---|
14 | S VIEN=$O(^TMP("PXKCO",$J,VISIT,"VST",""))
|
---|
15 | S NODE=$O(^TMP("PXKCO",$J,VISIT,"VST",VIEN,""))
|
---|
16 | S DATA=$G(^TMP("PXKCO",$J,VISIT,"VST",VIEN,NODE,"AFTER"))
|
---|
17 | I DATA="" S DATA=$G(^TMP("PXKCO",$J,VISIT,"VST",VIEN,NODE,"BEFORE"))
|
---|
18 | S DFN=$P(DATA,U,5)
|
---|
19 | S PXRMDFN="PXRMDFN"_DFN
|
---|
20 | ;Build the list of V Files.
|
---|
21 | S VF=""
|
---|
22 | F S VF=$O(^TMP("PXKCO",$J,VISIT,VF)) Q:VF="" D
|
---|
23 | . S DGBL=$S(VF="CPT":"PXD(811.2,",VF="HF":"AUTTHF(",VF="IMM":"AUTTIMM(",VF="PED":"AUTTEDT(",VF="POV":"PXD(811.2,",VF="SK":"AUTTSK(",VF="XAM":"AUTTEXAM(",1:"")
|
---|
24 | . S VGBL=$S(VF="CPT":"AUPNVCPT(",VF="HF":"AUPNVHF(",VF="IMM":"AUPNVIMM(",VF="PED":"AUPNVPED(",VF="POV":"AUPNVPOV(",VF="SK":"AUPNVSK(",VF="XAM":"AUPNVXAM(",1:"")
|
---|
25 | . S VFL(VF)=DGBL_U_VGBL
|
---|
26 | ;Call the routines that need to process the data.
|
---|
27 | D UPDPAT^PXRMMST(DFN,VISIT,.VFL)
|
---|
28 | Q
|
---|
29 | ;
|
---|
30 | ;======================================================
|
---|
31 | DEM(DFN,TODAY,DEMARR) ;Load the patient demographics into DEMARR
|
---|
32 | ;The patient's age is calculated using whatever date is passed as
|
---|
33 | ;TODAY. If there is a date of death and it is greater than TODAY
|
---|
34 | ;then set the date of death to null. Direct read of patient file
|
---|
35 | ;supported DBIA #10035. DATE OF BIRTH and SEX are required fields
|
---|
36 | ;in the patient file.
|
---|
37 | N TEMP
|
---|
38 | K DEMARR
|
---|
39 | I $L(DFN)'>0 S DEMARR("PATIENT")="" Q
|
---|
40 | S TEMP=$G(^DPT(DFN,0))
|
---|
41 | I TEMP="" S DEMARR("PATIENT")="" Q
|
---|
42 | S DEMARR("PATIENT")=$P(TEMP,U,1)
|
---|
43 | S DEMARR("SEX")=$P(TEMP,U,2)
|
---|
44 | S DEMARR("DOB")=$P(TEMP,U,3)
|
---|
45 | S DEMARR("SSN")=$P(TEMP,U,9)
|
---|
46 | S DEMARR("DOD")=$P($G(^DPT(DFN,.35)),U,1)
|
---|
47 | I DEMARR("DOD")>TODAY S DEMARR("DOD")=""
|
---|
48 | S DEMARR("DFN")=DFN
|
---|
49 | S DEMARR("AGE")=$$AGE^PXRMAGE(DEMARR("DOB"),DEMARR("DOD"),TODAY)
|
---|
50 | ;DBIA #1096
|
---|
51 | S TEMP=$O(^DGPM("ATID1",DFN,""))
|
---|
52 | I TEMP'="" S TEMP=9999999.999999-TEMP
|
---|
53 | S DEMARR("LAD")=TEMP
|
---|
54 | Q
|
---|
55 | ;
|
---|