| 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 | ; | 
|---|