VistA-ePrescribing/p/C0PPAT.m

84 lines
3.8 KiB
Mathematica

C0PPAT ; ERX/GPL - ERX PATIENT utilities; 8/26/09 ; 12/10/09 6:46pm
;;1.0;C0P;;Apr 25, 2012;Build 103
;Copyright 2009 George Lilly. Licensed under the terms of the GNU
;General Public License See attached copy of the License.
;
;This program is free software; you can redistribute it and/or modify
;it under the terms of the GNU General Public License as published by
;the Free Software Foundation; either version 2 of the License, or
;(at your option) any later version.
;
;This program is distributed in the hope that it will be useful,
;but WITHOUT ANY WARRANTY; without even the implied warranty of
;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;GNU General Public License for more details.
;
;You should have received a copy of the GNU General Public License along
;with this program; if not, write to the Free Software Foundation, Inc.,
;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
;
Q
;
; THIS ROUTINE IS CALLED AS PART OF ERX WEB SERVICES PROCESSING
; TO POPULATE INFORMATION ABOUT THE PATIENT TO BE MAPPED INTO XML
; AND SENT TO THE EPRESCRIBING PROVIDER TO DEFINE THE PATIENT ON THEIR
; SYSTEM. ALL WEB SERVICE CALLS REGARDING A PATIENT WILL USE THIS ROUTINE
; AND SEND A COMPLETE REPRESENTATION OF THE PATIENT.
; GPL JUN 2010
;
EN(RTNVAR,C0PDFN) ; INITIALIZE PATIENT VARIABLE ARRAY FOR PATIENT C0PDFN
; RTNVAR IS PASSED BY NAME. VARIABLES ARE PREFIXED WITH "PATIENT-"
; HERE IS A LIST OF THE VARIABLES THAT ARE POPULATED FOR THE PATIENT:
;GPL("PATIENT-ACTORADDRESSCITY")="ALTON"
;GPL("PATIENT-ACTORADDRESSLINE1")="1234 Somewhere Lane"
;GPL("PATIENT-ACTORADDRESSLINE2")=""
;GPL("PATIENT-ACTORADDRESSSOURCEID")="WS_PATIENT2"
;GPL("PATIENT-ACTORADDRESSSTATE")="KANSAS"
;GPL("PATIENT-ACTORADDRESSTYPE")="Home"
;GPL("PATIENT-ACTORADDRESSZIPCODE")=67623
;GPL("PATIENT-ACTORCELLTEL")=""
;GPL("PATIENT-ACTORCELLTELTEXT")=""
;GPL("PATIENT-ACTORDATEOFBIRTH")="1957-12-25"
;GPL("PATIENT-ACTOREMAIL")=""
;GPL("PATIENT-ACTORFAMILYNAME")="ZZ PATIENT"
;GPL("PATIENT-ACTORGENDER")="MALE"
;GPL("PATIENT-ACTORGIVENNAME")="TEST"
;GPL("PATIENT-ACTORIEN")=2
;GPL("PATIENT-ACTORMIDDLENAME")="TWO"
;GPL("PATIENT-ACTOROBJECTID")="WS_PATIENT2"
;GPL("PATIENT-ACTORRESTEL")="888-555-1212"
;GPL("PATIENT-ACTORRESTELTEXT")="Residential Telephone"
;GPL("PATIENT-ACTORSOURCEID")="ACTORSYSTEM_1"
;GPL("PATIENT-ACTORSSN")="769122557P"
;GPL("PATIENT-ACTORSSNSOURCEID")="WS_PATIENT2"
;GPL("PATIENT-ACTORSSNTEXT")="SSN"
;GPL("PATIENT-ACTORSUFFIXNAME")=""
;GPL("PATIENT-ACTORWORKTEL")="888-121-1212"
;GPL("PATIENT-ACTORWORKTELTEXT")="Work Telephone"
;GPL("PATIENTID")="PATIENT2"
N C0PTMP
D PEXTRACT^C0CACTOR("C0PTMP",C0PDFN,"WS_PATIENT_"_C0PDFN)
; todo: for state, use extended syntax
N ZG
S C0PTMP("PATIENTID")="PATIENT"_C0PDFN ; PATIENT ID BASED ON DFN
S C0PTMP("IDTYPE")="" ; DON'T KNOW WHAT SHOULD GO HERE
S C0PTMP("STARTHISTORY")="2004-01-01T00:00:00" ; DEFAULT... CHANGE THIS
S C0PTMP("ENDHISTORY")="2010-01-01T00:00:00" ; DEFAULT... CHANGE THIS
S C0PTMP("PRESCRIPTIONSTATUS")="C" ; DEFAULT... CHANGE THIS
S C0PTMP("PRESCRIPTIONSUBSTATUS")="S" ; DEFAULT... CHANGE THIS
S C0PTMP("ARCHIVESTATUS")="N" ; DEFAULT... CHANGE THIS
S ZG=$$GET1^DIQ(2,C0PDFN,.115,"I") ;NEED ABBREVIATION
S C0PTMP("ACTORADDRESSSTATE")=$$GET1^DIQ(5,ZG_",",1) ;STATE ABBREVIATION
I C0PTMP("ACTORGENDER")="MALE" S C0PTMP("ACTORGENDER")="M"
I C0PTMP("ACTORGENDER")="FEMALE" S C0PTMP("ACTORGENDER")="F"
S C0PTMP("ACTORDATEOFBIRTH")=$TR(C0PTMP("ACTORDATEOFBIRTH"),"-") ;REMOVE DASHES FROM DOB
S C0PTMP("ACTORSSN")=$TR(C0PTMP("ACTORSSN"),"P","") ;REMOVE P FROM TEST SSN
N ZI
S ZI=""
F S ZI=$O(C0PTMP(ZI)) Q:ZI="" D ; FOR EACH VARIABLE RETURNED
. S @RTNVAR@("PATIENT-"_ZI)=C0PTMP(ZI) ; RETURN PREFIXED VARIABLE
S @RTNVAR@("PATIENT-ACTORADDRESSCOUNTRY")="US" ;FIX THIS FOR INTERNATIONAL
S @RTNVAR@("PATIENT-ACTORMEMO")="" ; DON'T KNOW WHAT TO PUT HERE GPL
Q
;