diff --git a/p/GPLCCR0.m b/p/GPLCCR0.m
index 7667ab9..078c455 100644
--- a/p/GPLCCR0.m
+++ b/p/GPLCCR0.m
@@ -271,21 +271,17 @@ LOAD(ARY) ; LOAD A CCR TEMPLATE INTO ARY PASSED BY NAME
;;@@MEDICATIONOBJECTID@@
;;
;;
- ;;@@MEDICATIONDATETIMETEXT@@
+ ;;@@MEDICATIONISSUEDATETXT@@
;;
- ;;
- ;;@@MEDICATIONDATETIMEAGE@@
- ;;
- ;;@@MEDICATIONDATETIMEAGEUNITS@@
- ;;
- ;;
+ ;;@@MEDICATIONISSUEDATE@@
+ ;;
+ ;;@@MEDICATIONLASTFILLDATETXT@@
+ ;;
+ ;;@@MEDICATIONLASTFILLDATE@@
;;
;;
;;@@MEDICATIONTYPETEXT@@
;;
- ;;
- ;;@@MEDICATIONDESCRIPTIONTEXT@@
- ;;
;;
;;@@MEDICATIONSTATUSTEXT@@
;;
@@ -305,11 +301,6 @@ LOAD(ARY) ; LOAD A CCR TEMPLATE INTO ARY PASSED BY NAME
;;
;;
;;@@MEDICATIONBRANDNAMETEXT@@
- ;;
- ;;@@MEDICATIONBRANDNAMECODEVALUE@@
- ;;@@MEDICATIONBRANDNAMECODINGSYSTEM@@
- ;;@@MEDICATIONBRANDNAMECODEVERSION@@
- ;;
;;
;;
;;@@MEDICATIONSTRENGTHVALUE@@
@@ -320,21 +311,60 @@ LOAD(ARY) ; LOAD A CCR TEMPLATE INTO ARY PASSED BY NAME
;;
+ ;;
+ ;;@@MEDICATIONCONCENTRATIONTEXT@@
+ ;;
+ ;;
+ ;;@@MEDICATIONSIZETEXT
+ ;;
;;
+ ;;
+ ;;@@MEDICATIONQUANTITYVALUE@@
+ ;;
+ ;;@@MEDICATIONQUANTITYUNIT@@
+ ;;
;;
;;
;;
;;@@MEDICATIONDIRECTIONDESCRIPTIONTEXT@@
;;
+ ;;@@MEDICATIONDOSEINDICATOR@@
+ ;;@@MEDICATIONDELIVERYMETHOD@@
;;
;;@@MEDICATIONDIRECTIONDOSEVALUE@@
+ ;;
+ ;;@@MEDICATIONDOSEUNIT@@
+ ;;
+ ;;
+ ;;@@MEDICATIONDIRECTIONRATEVALUE@@
+ ;;
+ ;;@@MEDICATIONRATEUNIT@@
+ ;;
+ ;;
;;
+ ;;
+ ;;@@MEDICATIONVEHICLETEXT@@
+ ;;
;;
;;@@MEDICATIONDIRECTIONROUTETEXT@@
;;
;;
- ;;@@MEDICATIONDIRECTIONFREQUENCYVALUE@@
+ ;;@@MEDICATIONFREQUENCYVALUE@@
+ ;;
+ ;;@@MEDICATIONFREQUENCYUNIT@@
+ ;;
;;
+ ;;
+ ;;@@MEDICATIONINTERVALVALUE@@
+ ;;
+ ;;@@MEDICATIONINTERVALUNIT@@
+ ;;
+ ;;
+ ;;
+ ;;@@MEDICATIONDURATIONVALUE@@
+ ;;
+ ;;@@MEDICATIONDURATIONUNIT@@
+ ;;
;;
;;
;;
diff --git a/p/GPLMEDS.m b/p/GPLMEDS.m
index 1e397b1..82d50f7 100644
--- a/p/GPLMEDS.m
+++ b/p/GPLMEDS.m
@@ -17,65 +17,65 @@ GPLMEDS ; CCDCCR/CJE - CCR/CCD PROCESSING FOR MEDICATIONS ;07/23/08 14:33
;with this program; if not, write to the Free Software Foundation, Inc.,
;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
;
- W "NO ENTRY FROM TOP",!
- Q
- ;
+ W "NO ENTRY FROM TOP",!
+ Q
+ ;
EXTRACT(MEDXML,DFN,MEDOUTXML) ; EXTRACT MEDICATIONS INTO PROVIDED XML TEMPLATE
;
; MEDXML AND OUTXML ARE PASSED BY NAME SO GLOBALS CAN BE USED
; IMEDXML WILL CONTAIN ONLY THE MEDICATIONS SECTION OF THE OVERALL TEMPLATE
;
- N MEDRSLT,I,J,K,MEDPTMP,X,MEDVMAP,TBUF
- D ACTIVE^ORWPS(.MEDRSLT,DFN)
- I '$D(MEDRSLT(1)) D ; NO MEDS FOR THIS PATIENT, EXIT
- . W "ERROR RUNNINIG MEDICATIONS RPC",!
- . S @MEDOUTXML@(0)=0
- . Q
- IF DEBUG ZWR MEDRSLT
- S MEDTVMAP=$NA(^TMP("GPLCCR",$J,"MEDICATIONS"))
- S MEDTARYTMP=$NA(^TMP("GPLCCR",$J,"MEDARYTMP"))
- F J=1:3 Q:'$D(MEDRSLT(J)) D ; FOR EACH MEDICATION IN THE LIST
- . W "J IS ",J,!
- . S MEDVMAP=$NA(@MEDTVMAP@(J))
- . K @MEDVMAP
- . I DEBUG W "VMAP= ",VMAP,!
- . S MEDPTMP=MEDRSLT(J) ; PULL OUT MEDICATION FROM RPC RETURN ARRAY
- . S @MEDVMAP@("MEDICATIONOBJECTID")="MED"_J ; UNIQUE OBJID FOR MEDS
- . ; PROCESSING FOR MEDS GOES HERE
- . S @MEDVMAP@("MEDICATIONDATETIMETEXT")=$$FMDTOUTC^CCRUTIL($P(MEDPTMP,"^",11),"DT") ; GETS LAST FILL DATE
- . S @MEDVMAP@("MEDICATIONDATETIMEAGE")=""
- . S @MEDVMAP@("MEDICATIONDATETIMEAGEUNITS")=""
- . S @MEDVMAP@("MEDICATIONTYPETEXT")="Medication"
- . S @MEDVMAP@("MEDICATIONSTATUSTEXT")=$P(MEDPTMP,"^",10) ; STATUS FROM RPC
- . S @MEDVMAP@("MEDICATIONSOURCEACTORID")="ACTORSYSTEM_1"
- . S @MEDVMAP@("MEDICATIONPRODUCTNAMETEXT")=$P(MEDPTMP,"^",3)
- . S @MEDVMAP@("MEDICATIONPRODUCTNAMECODEVALUE")=""
- . S @MEDVMAP@("MEDICATIONPRODUCTNAMECODINGINGSYSTEM")=""
- . S @MEDVMAP@("MEDICATIONPRODUCTNAMECODEVERSION")=""
- . S @MEDVMAP@("MEDICATIONBRANDNAMETEXT")=""
- . S @MEDVMAP@("MEDICATIONBRANDNAMECODEVALUE")=""
- . S @MEDVMAP@("MEDICATIONBRANDNAMECODINGSYSTEM")=""
- . S @MEDVMAP@("MEDICATIONBRANDNAMECODEVERSION")=""
- . S @MEDVMAP@("MEDICATIONSTRENGTHVALUE")=""
- . S @MEDVMAP@("MEDICATIONSTRENGTHUNIT")=""
- . S @MEDVMAP@("MEDICATIONFORMTEXT")=""
- . S @MEDVMAP@("MEDICATIONDESCRIPTIONTEXT")=$P(MEDRSLT(J+1)," *",2)
- . S @MEDVMAP@("MEDICATIONDIRECTIONDESCRIPTIONTEXT")=$P(MEDRSLT(J+2),"\ Sig: ",2)
- . S @MEDVMAP@("MEDICATIONDIRECTIONDOSEVALUE")=""
- . S @MEDVMAP@("MEDICATIONDIRECTIONROUTETEXT")=""
- . S @MEDVMAP@("MEDICATIONDIRECTIONFREQUENCYVALUE")=""
- . S MEDARYTMP=$NA(@MEDTARYTMP@(J))
- . K @MEDARYTMP
- . D MAP^GPLXPATH(MEDXML,MEDVMAP,MEDARYTMP)
- . I J=1 D ; FIRST ONE IS JUST A COPY
- . . ; W "FIRST ONE",!
- . . D CP^GPLXPATH(MEDARYTMP,MEDOUTXML)
- . I J>1 D ; AFTER THE FIRST, INSERT INNER XML
- . . D INSINNER^GPLXPATH(MEDOUTXML,MEDARYTMP)
- N MEDTMP,MEDI
- D MISSING^GPLXPATH(MEDOUTXML,"MEDTMP") ; SEARCH XML FOR MISSING VARS
- I MEDTMP(0)>0 D ; IF THERE ARE MISSING VARS - MARKED AS @@X@@
- . W "MEDICATION MISSING ",!
- . F MEDI=1:1:MEDTMP(0) W MEDTMP(MEDI),!
- Q
- ;
+ N MEDRSLT,I,J,K,MEDPTMP,X,MEDVMAP,TBUF
+ D ACTIVE^ORWPS(.MEDRSLT,DFN)
+ I '$D(MEDRSLT(1)) D ; NO MEDS FOR THIS PATIENT, EXIT
+ . W "ERROR RUNNINIG MEDICATIONS RPC",!
+ . S @MEDOUTXML@(0)=0
+ . Q
+ IF DEBUG ZWR MEDRSLT
+ S MEDTVMAP=$NA(^TMP("GPLCCR",$J,"MEDICATIONS"))
+ S MEDTARYTMP=$NA(^TMP("GPLCCR",$J,"MEDARYTMP"))
+ F J=1:3 Q:'$D(MEDRSLT(J)) D ; FOR EACH MEDICATION IN THE LIST
+ . W "J IS ",J,!
+ . S MEDVMAP=$NA(@MEDTVMAP@(J))
+ . K @MEDVMAP
+ . I DEBUG W "VMAP= ",VMAP,!
+ . S MEDPTMP=MEDRSLT(J) ; PULL OUT MEDICATION FROM RPC RETURN ARRAY
+ . S @MEDVMAP@("MEDICATIONOBJECTID")="MED"_J ; UNIQUE OBJID FOR MEDS
+ . ; PROCESSING FOR MEDS GOES HERE
+ . S @MEDVMAP@("MEDICATIONDATETIMETEXT")=$$FMDTOUTC^CCRUTIL($P(MEDPTMP,"^",11),"DT") ; GETS LAST FILL DATE
+ . S @MEDVMAP@("MEDICATIONDATETIMEAGE")=""
+ . S @MEDVMAP@("MEDICATIONDATETIMEAGEUNITS")=""
+ . S @MEDVMAP@("MEDICATIONTYPETEXT")="Medication"
+ . S @MEDVMAP@("MEDICATIONSTATUSTEXT")=$P(MEDPTMP,"^",10) ; STATUS FROM RPC
+ . S @MEDVMAP@("MEDICATIONSOURCEACTORID")="ACTORSYSTEM_1"
+ . S @MEDVMAP@("MEDICATIONPRODUCTNAMETEXT")=$P(MEDPTMP,"^",3)
+ . S @MEDVMAP@("MEDICATIONPRODUCTNAMECODEVALUE")=""
+ . S @MEDVMAP@("MEDICATIONPRODUCTNAMECODINGINGSYSTEM")=""
+ . S @MEDVMAP@("MEDICATIONPRODUCTNAMECODEVERSION")=""
+ . S @MEDVMAP@("MEDICATIONBRANDNAMETEXT")=""
+ . S @MEDVMAP@("MEDICATIONBRANDNAMECODEVALUE")=""
+ . S @MEDVMAP@("MEDICATIONBRANDNAMECODINGSYSTEM")=""
+ . S @MEDVMAP@("MEDICATIONBRANDNAMECODEVERSION")=""
+ . S @MEDVMAP@("MEDICATIONSTRENGTHVALUE")=""
+ . S @MEDVMAP@("MEDICATIONSTRENGTHUNIT")=""
+ . S @MEDVMAP@("MEDICATIONFORMTEXT")=""
+ . S @MEDVMAP@("MEDICATIONDESCRIPTIONTEXT")=$P(MEDRSLT(J+1)," *",2)
+ . S @MEDVMAP@("MEDICATIONDIRECTIONDESCRIPTIONTEXT")=$P(MEDRSLT(J+2),"\ Sig: ",2)
+ . S @MEDVMAP@("MEDICATIONDIRECTIONDOSEVALUE")=""
+ . S @MEDVMAP@("MEDICATIONDIRECTIONROUTETEXT")=""
+ . S @MEDVMAP@("MEDICATIONDIRECTIONFREQUENCYVALUE")=""
+ . S MEDARYTMP=$NA(@MEDTARYTMP@(J))
+ . K @MEDARYTMP
+ . D MAP^GPLXPATH(MEDXML,MEDVMAP,MEDARYTMP)
+ . I J=1 D ; FIRST ONE IS JUST A COPY
+ . . ; W "FIRST ONE",!
+ . . D CP^GPLXPATH(MEDARYTMP,MEDOUTXML)
+ . I J>1 D ; AFTER THE FIRST, INSERT INNER XML
+ . . D INSINNER^GPLXPATH(MEDOUTXML,MEDARYTMP)
+ N MEDTMP,MEDI
+ D MISSING^GPLXPATH(MEDOUTXML,"MEDTMP") ; SEARCH XML FOR MISSING VARS
+ I MEDTMP(0)>0 D ; IF THERE ARE MISSING VARS - MARKED AS @@X@@
+ . W "MEDICATION MISSING ",!
+ . F MEDI=1:1:MEDTMP(0) W MEDTMP(MEDI),!
+ Q
+ ;